CentOS7 下安装 Elasticsearch

ElasticSearch是分布式全文搜索引擎,底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。es 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。

一、安装

es 需要 Java 8 环境。如果没有安装 Java,请先安装并且设置正确的环境变量JAVA_HOME。

1、java安装

查看系统是否自带jdk

$ rpm -qa |grep java 
$ rpm -qa |grep jdk

如果有输出信息,批量卸载系统自带

$ rpm -qa | grep java | xargs rpm -e --nodeps

如果使用 yum 安装的 jdk,请使用下面命令卸载

$ yum -y remove java-1.8.0-openjdk-headless.x86_64

接下来安装java8

$ yum install -y java-1.8.0-openjdk.x86_64

然后配置环境变量
用vim打开 /etc/profile 文件再最后一行添加以下代码

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/ //安装路径
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH

这里的安装路径根据你实际的安装路径来,不知道实际安装路径的可以根据我这样输入。

centos7下安装Elasticsearch

最后

source /etc/profile 

至此设置完成。

2、下载es

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zip
$ unzip elasticsearch-5.5.1.zip
$ cd elasticsearch-5.5.1/ 
$ ./bin/elasticsearch

有可能出现的错误:
1、

OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriat
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=’Cannot allocate memory’ (errno=12)

centos7下安装Elasticsearch
修改jvm

$ vim config/jvm.options
-Xms4g
-Xmx4g

修改为

-Xms512m
-Xmx512m

2、不能用root用户启动es
centos7下安装Elasticsearch

新建一个用户

$ groupadd end
$ useradd end -g end
$ passwd end
输入密码:
$ su end

3、如果是这个错误
centos7下安装Elasticsearch
只需改变elasticsearch文件夹所有者到当前用户

$ chown -R end:end /usr/local/elasticsearch-5.5.1/

再次运行,如下图示,表示一切正常。

centos7下安装Elasticsearch
如果一切正常,Elastic 就会在默认的9200端口运行。这时,打开另一个命令行窗口,请求该端口,会得到说明信息。

$ curl localhost:9200
{
  "name" : "oMArTJQ",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "gkon1pwfRFCr6omXIikBBA",
  "version" : {
    "number" : "5.5.1",
    "build_hash" : "19c13d0",
    "build_date" : "2017-07-18T20:44:24.823Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}

上面代码中,请求9200端口,Elastic 返回一个 JSON 对象,包含当前节点、集群、版本等信息。

按下 Ctrl + C,Elastic 就会停止运行。

默认情况下,Elastic 只允许本机访问,如果需要远程访问,可以修改 Elastic 安装目录的config/elasticsearch.yml文件,去掉network.host的注释,将它的值改成0.0.0.0,然后重新启动 Elastic。

network.host: 0.0.0.0

上面代码中,设成0.0.0.0让任何人都可以访问。线上服务不要这样设置,要设成具体的 IP。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!