您的位置:首页 > Web前端 > HTML5

ElasticSearch5.x实践_day01_02_ElasticSearch集群部署

2017-06-04 00:00 495 查看
摘要: ElasticSearch集群部署及所遇问题解决方式

ElasticSearch集群部署

安装Java环境(在此不再赘述)

[zhubo@localhost elasticsearch-5.4.1]$ java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

ElasticSearch下载 https://www.elastic.co/

去官网找到ElasticSearch最新版本地址,现在官网最新的稳定版是5.4.1版本

$ curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.zip[/code] 创建用户和用户组为(zhubo),为zip文件赋予该用户和用户组,将文件移到该用户可读写的文件夹下(/home/zhubo/src/),改为该用户登录模式对zip文件进行解压

[zhubo@localhost src]$ pwd
/home/zhubo/src
[zhubo@localhost src]$ chown zhubo:zhubo elasticsearch-5.4.1.zip
[zhubo@localhost src]$ unzip elasticsearch-5.4.1.zip

ElasticSearch一共准备了三个节点(192.168.1.171/192.168.1.172/192.168.1.173)

环境均是CentOS6.8 , JDK1.8.0_131

修改集群配置文件

# ======================== Elasticsearch Configuration =========================
# ElasticSearch 各个版本Doc
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html # ---------------------------------- Cluster -----------------------------------
# #配置es的集群名称, es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群
#
cluster.name: zhubo
# ------------------------------------ Node ------------------------------------
# #节点名称
node.name: node-1
# #指定该节点是否有资格被选举成为node
node.master: true
# #指定该节点是否存储索引数据,默认为true
node.data: true
#这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,
#所以导致检测失败,失败后直接导致ES不能启动
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
# ---------------------------------- Network -----------------------------------
# #设置绑定的ip地址还有其它节点和该节点交互的ip地址
network.host: 192.168.1.171
# #指定http端口,你使用head、kopf等相关插件使用的端口
http.port: 9200
# #设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# --------------------------------- Discovery ----------------------------------
# #设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
#
discovery.zen.ping.unicast.hosts: ["192.168.1.171:9300","192.168.1.172:9300","192.168.1.173:9300"]
#
# #如果要使用head,那么需要增加新的参数,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
#

scp远程拷贝:

[zhubo@localhost src]$ pwd
/home/zhubo/src
[zhubo@localhost src]$ scp -r /home/zhubo/src/elasticsearch-5.4.1 zhubo@192.168.1.172:/home/zhubo/src/elasticsearch-5.4.1
[zhubo@localhost src]$ scp -r /home/zhubo/src/elasticsearch-5.4.1 zhubo@192.168.1.173:/home/zhubo/src/elasticsearch-5.4.1

修改节点名称(node.name)和当前节点的IP地址(network.host)

启动:

./bin/elasticsearch 前台启动

./bin/elasticsearch -d 守护进程启动

ElasticSearch过程中出现的问题

问题一:ERROR: bootstrap checks failed

max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]

解决:切换到root用户,编辑limits.conf 添加类似如下内容

vi /etc/security/limits.conf

添加如下内容:

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

问题二:max number of threads [1024] for user [lish] likely too low, increase to at least [2048]

解决:切换到root用户,进入limits.d目录下修改配置文件。

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,即可启动成功。

问题四:启动异常:ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

问题原因:因为Centos6不支持SecComp,而ES5.2.1默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。详见 :https://github.com/elastic/elasticsearch/issues/22899

解决:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

启动异常:ERROR: bootstrap checks failed

ystem call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

问题原因:因为Centos6不支持SecComp,而ES5.2.1默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。详见 :https://github.com/elastic/elasticsearch/issues/22899

解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ElasticSearch