最好使用jdk1.8和elsearch5.3
容易出现的错误是配置文件的文字格式的错误和版本错误
一、Jdk环境变量配置
进入jdk源码包所在目录
tar zxvf jdk-8u66-linux-x64.tar.gz -C /usr/local
cd /usr/local
mv jdk-8u66-linux-x64 java
设置jdk环境变量
vi /etc/profile
打开之后在末尾添加
复制代码
JAVA_HOME=/usr/local/java
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
使环境变量生效
source /etc/profile
检验是否安装成功在终端
java -version
二、接下来配置es
# tar zxvf elasticsearch-5.3.0.tar.gz
# mv elasticsearch-5.3.0 /usr/local/elasticsearch
# mkdir -p /usr/local/elasticsearch/{data,logs}
配置 es 参数文件
# vi /usr/local/elasticsearch/config/elasticsearch.yml
# 注意冒号后有空格
http.port: 9200
network.host: 10.1.5.81
cluster.name: es_cluster
node.name: node-1
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
(因为Centos6不支持SecComp,而ES5.2.1默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。详见 :https://github.com/elastic/elasticsearch/issues/22899)
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs
配置足够内存
# vi /usr/local/elasticsearch/config/jvm.options
-Xms512M
-Xmx512M
配置环境变量
# vi /etc/profile
export ES_HOME=/usr/local/elasticsearch
export PATH=$PATH:$ES_HOME/bin
# source /etc/profile
添加独立用户,并启动服务
# useradd elsearch
# chown -R elsearch.elsearch /usr/local/elasticsearch
# su elsearch
# cd /usr/local/elasticsearch/bin
# ./elasticsearch
./elasticsearch -d(测试成功后放后台运行)
不后台运行的正常状态如下不会自动退出:{node-2}{p0z8T7KDTa2nV_y6VzDwhg}{3DVYOISoQTyhI3BISVFSYw}{10.1.1.55}{10.1.1.55:9300}, reason: zen-disco-elected-as-master ([0] nodes joined)
[2017-09-13T01:40:45,280][INFO ][o.e.h.n.Netty4HttpServerTransport] [node-1] publish_address {10.1.1.55:9200}, bound_addresses {10.1.1.55:9200}
[2017-09-13T01:40:45,287][INFO ][o.e.n.Node ] [node-1] started
[2017-09-13T01:40:45,355][INFO ][o.e.g.GatewayService ] [node-1] recovered [0] indices into cluster_state
不后台运行的情况下如有报错会直接退出如下:
[2018-06-05T09:44:07,667][INFO ][o.e.g.GatewayService ] [node-1] recovered [0] indices into cluster_state
[2018-06-05T09:44:08,579][INFO ][o.e.n.Node ] [node-1] stopping ...
[2018-06-05T09:44:08,615][INFO ][o.e.n.Node ] [node-1] stopped
[2018-06-05T09:44:08,615][INFO ][o.e.n.Node ] [node-1] closing ...
[2018-06-05T09:44:08,636][INFO ][o.e.n.Node ] [node-1] closed
后台运行正常的话会直接跳到用户命令状态,如有报错会显示错误信息
可能错误
ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
原因:无法创建本地文件问题,用户最大可创建文件数太小
解决方案:
切换到root用户,编辑limits.conf配置文件, 添加类似如下内容:
vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
备注:* 代表Linux所有用户名称(比如 hadoop)
保存、退出、重新登录才可生效
max number of threads [1024] for user [es] likely too low, increase to at least [2048]
原因:无法创建本地线程问题,用户最大可创建线程数太小
解决方案:切换到root用户,进入limits.d目录下,修改90-nproc.conf 配置文件。
vi /etc/security/limits.d/90-nproc.conf
找到如下内容:
* soft nproc 1024
#修改为
* soft nproc 2048
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
原因:最大虚拟内存太小
解决方案:切换到root用户下,修改配置文件sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
然后重新启动elasticsearch,即可启动成功。
浏览器打开网址:http://192.168.1.222:9200/ (出现当前集群节点信息)
{
"name" : "node-1",
"cluster_name" : "es_cluster",
"cluster_uuid" : "3DUO7WigT9m0pqMz-QlR4g",
"version" : {
"number" : "5.3.0",
"build_hash" : "253032b",
"build_date" : "2016-10-26T04:37:51.531Z",
"build_snapshot" : false,
"lucene_version" : "6.2.0"
},
"tagline" : "You Know, for Search"
集群配置
node.name: node-1 每个节点按顺序起不一样的名字
cluster.name: my-application 这个名称各个节点要一致
discovery.zen.ping.unicast.hosts: [""] 第一个节点可以不填,其他的填第一个节点的ip
配置这个集群的的时候,配置elasticsearch.yml 这个文件出现错误可以先ps查找id再kill程序(elsearch用户权限下也是可以的),再重启程序