elasticsearch6.6.1集群安装
安装步骤
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。elasticsearch的安装起因是因为griffin质量分析组件的依赖,故有此文。
下载链接:https://www.elastic.co/downloads/elasticsearch
安装依赖
- jdk版本要在1.8以上
- 必须是非root用户安装
解压es压缩包
[hadoop@master ~]$ tar -zxvf elasticsearch-6.6.1.tar.gz
修改配置文件elasticsearch.yml
集群配置中最重要的两项是node.name与network.host,每个节点都必须不通。其中node.name是节点名称主要是在Elasticsearch自己的日志加以区分每一个节点信息。
discovery.zen.ping.unicast.hosts是集群中的节点信息,可以使用IP地址、可以使用主机名(必须可以解析)。
[hadoop@master ~]$ cd elasticsearch-6.6.1/config/
[hadoop@master config]$ vi elasticsearch.yml
末尾添加
cluster.name:es-cluster # 集群名称
node.name: els1 # 节点名称,仅仅是描述名称,用于在日志中区分
#path.data: /home/hadoop/elasticsearch-6.6.1/data # 数据的默认存放路径,默认就好
#path.logs: /home/hadoop/elasticsearch-6.6.1/logs # 日志的默认存放路径,默认就好
network.host: 169.254.1.100 # 当前节点的IP地址
http.port: 9200 # 对外提供服务的端口,9300为集群服务的端端口
discovery.zen.ping.unicast.hosts: [“169.254.1.100”, “169.254.1.101”,“169.254.1.102”]
# 集群个节点IP地址,也可以使用els、els.shuaiguoxia.com等名称,需要各节点能够解析
discovery.zen.minimum_master_nodes: 2 # 为了避免脑裂,集群节点数最少为半数+1
bootstrap.system_call_filter: false # Centos6系统必须加
安装问题:
[2]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
原因:
Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
解决方案
在每个节点elasticsearch.yml中新增配置
bootstrap.system_call_filter: false
复制es安装包到其他节点
复制之前需要删除es目录中已存在的data目录(如果有data目录),否则会报如下错:
问题:
`] [bigdata02] failed to send join request to master
[{bigdata03}{al80t7luTW-A4sgG6AQWFQ}{5ZwkRS46TzSFAdtuuZfqFA}{192.168.136.152}{192.168.136.152:9300}],
reason
[RemoteTransportException[[bigdata03][192.168.136.152:9300][internal:discovery/zen/join]];
nested: NotMasterException[Node
[{bigdata03}{al80t7luTW-A4sgG6AQWFQ}{5ZwkRS46TzSFAdtuuZfqFA}{192.168.136.152}{192.168.136.152:9300}]
not master for join request]; ], tried [3]
**原因:**把elasticsearch复制到其他节点时 ,把elasticsearch下的data也拷贝过去了
**解决:**把data目录删了,再从新启动就解决了
拷贝es目录到其他节点
[hadoop@master ~]$ scp -r /home/hadoop/elasticsearch-6.6.1/ slave01:/home/hadoop/
[hadoop@master ~]$ scp -r /home/hadoop/elasticsearch-6.6.1/ slave02:/home/hadoop/
elasticsearch.yml配置
修改node.name与network.host,其他不变,三节点分别是
node.name: els1
network.host: 169.254.1.100
node.name: els2
network.host: 169.254.1.101
node.name: els3
network.host: 169.254.1.102
limits.conf配置
所有节点都需要配置
[root@master ~]# vi /etc/security/limits.conf
添加
hadoop soft nofile 65536 #hadoop代表用户名,*代表全部用户
hadoop hard nofile 65536
hadoop soft nproc 4096
hadoop hard nproc 4096
可以通过命令查看相关值
[hadoop@master ~]$ ulimit -Hu
4096
[hadoop@master ~]$ ulimit -Su
4096
[hadoop@master ~]$ ulimit -Hn
65536
[hadoop@master ~]$ ulimit -Sn
65536
如果不进行配置,会报如下问题(如果相关值比es最小值大就不用改):
问题1:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
**原因:**每个进程最大同时打开文件数太小(至少65536)
解决:
[root@master ~]# vi /etc/security/limits.conf
添加
hadoop soft nofile 65536
hadoop hard nofile 65536
问题2:
max number of threads [3818] for user [es] is too low, increase to at least [4096]
**原因:**最大线程个数太低(至少4096)
解决:
[root@master ~]# vi /etc/security/limits.conf
添加
hadoop soft nproc 4096
hadoop hard nproc 4096
需要保存、退出、重新登录才可生效。
sysctl.conf配置
所有节点都需要配置
[root@master ~]# echo “vm.max_map_count=262144” >> /etc/sysctl.conf
否则会报如下问题(如果相关值比es最小值大就不用改):
问题:
max virtual memory areas vm.max_map_count [65530] likely too low,
increase to at least [262144]
原因: 最大虚拟内存太小(至少262144)
解决:
[root@master ~]# echo “vm.max_map_count=262144” >> /etc/sysctl.conf
配置环境变量
[hadoop@master ~]$ vi .bash_profile
PATH= P A T H : PATH: PATH:HOME/bin
export HADOOP_HOME=/home/hadoop/hadoop-3.2.0
export HIVE_HOME=/home/hadoop/hive-3.1.1
export SPARK_HOME=/home/hadoop/spark-2.4.0
export SCALA_HOME=/home/hadoop/scala-2.10.6
export LIVY_HOME=/home/hadoop/livy-0.5.0
export ES_HOME=/home/hadoop/elasticsearch-6.6.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$SPARK_HOME/bin:$SCALA_ HOME/bin:$LIVY_HOME/bin:$ES_HOME/bin
使环境变量生效
[hadoop@master ~]$ source .bash_profile
启动elasticsearch
三个节点都要启动
[hadoop@master ~]$ cd elasticsearch-6.6.1/
[hadoop@master elasticsearch-6.6.1]$ bin/elasticsearch
[slave01@master ~]$ cd elasticsearch-6.6.1/
[slave01@master elasticsearch-6.6.1]$ bin/elasticsearch
[slave02@master ~]$ cd elasticsearch-6.6.1/
[slave02@master elasticsearch-6.6.1]$ bin/elasticsearch
小技巧:
退出es --> ctrl+C
后台运行 --> 加参数 -d,即:bin/elasticsearch -d
es启动验证
[hadoop@master ~]$ curl -XGET ‘http://169.254.1.100:9200/_cat/nodes?pretty’
169.254.1.102 10 96 5 0.10 0.94 1.63 mdi - els3
169.254.1.101 11 96 4 0.00 0.57 1.72 mdi * els2 # *号表示为当前节点为主节点的意思
169.254.1.100 21 97 2 0.02 0.13 0.23 mdi - els1
查看每个节点的相关信息,会返回一个json串(也可以通过 IP地址:9200 web界面查看)
[hadoop@master ~]$ curl -X GET http://169.254.1.100:9200/
{
“name” : “els1”, # 节点名
“cluster_name” : “es-cluster”, #es集群名
“cluster_uuid” : “O_VdhbVcStCYapaCVQSnMw”,
“version” : {
“number” : “6.6.1”,
“build_flavor” : “default”,
“build_type” : “tar”,
“build_hash” : “1fd8f69”,
“build_date” : “2019-02-13T17:10:04.160291Z”,
“build_snapshot” : false,
“lucene_version” : “7.6.0”,
“minimum_wire_compatibility_version” : “5.6.0”,
“minimum_index_compatibility_version” : “5.0.0”
},
“tagline” : “You Know, for Search”
}
[hadoop@master ~]$ curl -X GET http://169.254.1.101:9200/
{
“name” : “els2”,
“cluster_name” : “es-cluster”,
“cluster_uuid” : “O_VdhbVcStCYapaCVQSnMw”,
“version” : {
“number” : “6.6.1”,
“build_flavor” : “default”,
“build_type” : “tar”,
“build_hash” : “1fd8f69”,
“build_date” : “2019-02-13T17:10:04.160291Z”,
“build_snapshot” : false,
“lucene_version” : “7.6.0”,
“minimum_wire_compatibility_version” : “5.6.0”,
“minimum_index_compatibility_version” : “5.0.0”
},
“tagline” : “You Know, for Search”
}
[hadoop@master ~]$ curl -X GET http://169.254.1.102:9200/
{
“name” : “els3”,
“cluster_name” : “es-cluster”,
“cluster_uuid” : “O_VdhbVcStCYapaCVQSnMw”,
“version” : {
“number” : “6.6.1”,
“build_flavor” : “default”,
“build_type” : “tar”,
“build_hash” : “1fd8f69”,
“build_date” : “2019-02-13T17:10:04.160291Z”,
“build_snapshot” : false,
“lucene_version” : “7.6.0”,
“minimum_wire_compatibility_version” : “5.6.0”,
“minimum_index_compatibility_version” : “5.0.0”
},
“tagline” : “You Know, for Search”
}
相关问题及解决
链接1:http://www.dajiangtai.com/community/18136.do?origin=csdn-geek&dt=1214
链接2:https://blog.csdn.net/dajienet/article/details/80009391