Elasticsearch集群安装,
基于Elasticsearch6.2.2版本,
在Linux上安装Elasticsearch集群。
1.安装规划
IP | HostName | Service | MasterNode | DataNode | NodeName |
---|---|---|---|---|---|
10.43.159.9 | zdh-9 | Elasticsearch | false | true | node-9 |
10.43.159.11 | zdh-11 | Elasticsearch | true | false | node-11 |
安装用户:elasticsearch/zdh1234
2.使用root登陆zdh-11,创建elasticsearch用户
useradd -g hadoop -s /bin/bash -md /home/elasticsearch elasticsearch
passwd elasticsearch
zdh1234
再切换到elasticsearch用户,获取并且解压安装包
tar -zxvf elasticsearch-6.2.2.tar.gz
3.配置elasticsearch用户环境变量
安装jdk,修改.bashrc文件,配置jdk目录
export JAVA_HOME=/usr/java/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使用source .bashrc使环境变量生效,
使用java -version检查结果。
4.修改配置文件config/elasticsearch.yml
集群名称,建议修改成自己的,防止误用默认集群
cluster.name: yuwencluster
配置外网可以访问
network.host: 0.0.0.0
配置访问端口
http.port: 9200
配置集群节点列表,用于集群发现各个节点:
discovery.zen.ping.unicast.hosts: ["zdh-9", "zdh-11"]
discovery.zen.minimum_master_nodes: 1
下面的几个参数需要根据各个节点的规划做相应的修改:
node.name: node-11
如果是master节点设置成true
node.master: true
如果是data节点设置成true
node.data: false
如果使用的是Centos6+操作系统,
需要在elasticsearch.yml中添加如下配置,
注意要加在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
5.使用root用户修改相应的配置
5.1配置sysctl.conf
vim /etc/sysctl.conf
添加如下配置
vm.max_map_count=262144
让配置生效
sysctl -p
查看配置的数目
sysctl -a|grep vm.max_map_count
5.2配置limits.conf
vim /etc/security/limits.conf
#*代表所有用户,也可以指定用户名elasticsearch
* hard nofile 65536
* soft nofile 65536
* soft nproc 4096
* hard nproc 4096
重新登录elasticsearch,查看是否生效
ulimit -Hn
返回65536表示OK。
5.3修改90-nproc.conf 配置文件
vi /etc/security/limits.d/90-nproc.conf
修改为如下内容:
- soft nproc 4096
6.使用elasticsearch用户启动elasticsearch
启动elasticsearch服务
./bin/elasticsearch
后台启动elasticsearch服务
./bin/elasticsearch -d
注意elasticsearch默认是不允许使用root用户启动的。
停止elasticsearch服务
grep找到elasticsearch对应的进程,kill掉即可
jps查看到类似如下进程:
7324 Elasticsearch
7.安装zdh-9的elasticsearch用户
按照上面的步骤1-6把elasticsearch安装zdh-9的elasticsearch用户,
修改elasticsearch.yml注意下面的几个参数,
需要根据各个节点的规划做相应的修改:
node.name: node-9
如果是master节点设置成true
node.master: false
如果是data节点设置成true
node.data: true
8.查看集群的状态
curl -XGET 'http://10.43.159.11:9200/_cluster/health?pretty'
返回结果:
{
"cluster_name" : "yuwencluster",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 2,
"number_of_data_nodes" : 1,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
可以从结果中看到集群有2个节点
curl -XGET 'http://10.43.159.11:9200/_cat/master?v'
curl -XGET 'http://10.43.159.11:9200/_cat/nodes?v'
9.客户端验证
请参考《Elasticsearch单机安装》
10.错误解决:
1.问题:
[2016-11-06T16:27:21,712][WARN ][o.e.b.JNANatives ] unable to install syscall filter:
Java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMPandCONFIG_SECCOMP_FILTERcompiledinatorg.elasticsearch.bootstrap.Seccomp.linuxImpl(Seccomp.java:349) ~[elasticsearch-5.0.0.jar:5.0.0]
at org.elasticsearch.bootstrap.Seccomp.init(Seccomp.java:630) ~[elasticsearch-5.0.0.jar:5.0.0]
原因:报了一大串错误,大家不必惊慌,其实只是一个警告,主要是因为你Linux版本过低造成的。
解决方案:
1、重新安装新版本的Linux系统
2、警告不影响使用,可以忽略