elasticsearch6.0.1单机多节点集群搭建

环境准备

1、准备两台服务器:10.47.227.13   10.47.227.14(默认已安装java环境)

2、es6.0.1安装包下载 (下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-0-1

3、cerebro插件下载(下载地址:https://github.com/lmenezes/cerebro/releases

4、新增用户es(elasticsearch不能由root用户启动)

//添加用户es
adduser es
//设置密码
passwd es

集群搭建

1.集群概况:3个master节点,5个数据节点

服务器 节点名称 是否为主节点 是否为数据节点
10.47.227.13 node-1 true true
10.47.227.13 node-2 true true
10.47.227.13 node-3 true true
10.47.227.14 node-4 false true
10.47.227.14 node-5 false true
扫描二维码关注公众号,回复: 4827743 查看本文章

  

 2、10.47.227.13机器创建3个目录对应3个es节点

mkdir /opt/es/server1
mkdir /opt/es/server2
mkdir /opt/es/server3

分别解压es安装包到3个目录中

tar -zxvf elasticsearch-6.0.1.tar.gz

3、创建数据存放路径和日志存放路径(应将设置配置为在Elasticsearch主目录之外定位数据目录,以便在不删除数据的情况下删除主目录!)

mkdir /usr/local/es/server1/data
mkdir /usr/local/es/server1/logs
...

4、为es用户授权

#赋予文件夹权限
chown -R es:es /opt/es

5、配置elasticsearch.yml(以node-1节点为例)

注意:每个配置项冒号后面需要空一格,否则启动会报错

##集群名称,每个节点配置成一样的名称才能形成正确的集群
cluster.name: local-es-cluster
##节点名称,每个节点配置不同名称
node.name: node-1
##是否主节点
node.master: true       
##是否数据节点        
node.data: true       
##单机最大节点数          
node.max_local_storage_nodes: 3
##索引数据的存储路径
path.data: /usr/local/es/server1/data
##日志文件的存储路径
path.logs: /usr/local/es/server1/logs
##启动时锁定内存,设置为true来锁住内存。因为内存交换到磁盘对服务器性能来说是致命的,当jvm开始swapping时es的效率会降低,所以要保证它不swap
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
##绑定的ip地址
network.host: 10.47.227.13
##设置对外服务的http端口,默认为9200
http.port: 9200
## 设置节点间交互的tcp端口,默认是9300 
transport.tcp.port: 9300
transport.tcp.compress: true
## 设置集群中节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["10.47.227.13:9300", "10.47.227.13:9301","10.47.227.13:9302","10.47.227.14:9300","10.47.227.14:9301"]
##防止脑裂现象,如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 - 这将导致数据丢失
discovery.zen.minimum_master_nodes: 2
#action.destructive_requires_name: true

node-2,node-3节点配置与node-1类似,修改node.name、path.data、path.log、http.port、transport.tcp.port等配置为对应值即可。

node-4,node-5除以上几项需修改外,node.master配置为false,network.host配置为10.47.227.14即可。

6、如果内存空间不足,需修改jvm.options中配置

因为两台本地集群机器内存一共为4g,jvm.options中每个节点默认分配1g,10.47.227.13上启动三个节点时,加上其他额外的内存消耗,会出现内存不足,三个节点无法全部正常启动(只能启动部分节点,有时候一个节点启动正常,有时候是两个),所以需要修改jvm内存配置

vim /opt/es/server1/elasticsearch-6.0.1/config/jvm.options 
#默认是1g官方建议对jvm进行一些修改,不然很容易出现OOM,参考官网改参数配置最好不要超过内存的50% 
-Xms750m
-Xmx750m

7、启动各个es节点

注意:启动操作需登入es用户执行

//切到es用户
su - es
//进入es节点路径
cd /opt/es/server1/elasticsearch-6.0.1/
//启动
./elasticsearch -d

如果出现以下错误

[2018-02-14T23:40:16,908][ERROR][o.e.b.Bootstrap          ] [node-1] node validation exception
[3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: memory locking requested for elasticsearch process but memory is not locked
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2018-02-14T23:40:16,910][INFO ][o.e.n.Node               ] [node-1] stopping ...
[2018-02-14T23:40:17,016][INFO ][o.e.n.Node               ] [node-1] stopped
[2018-02-14T23:40:17,016][INFO ][o.e.n.Node               ] [node-1] closing ...
[2018-02-14T23:40:17,032][INFO ][o.e.n.Node               ] [node-1] closed

解决方法
切回root用户,修改配置 

① vim /etc/security/limits.conf

es soft nofile 65536
es hard nofile 131072
es soft nproc 4096
es hard nproc 8192
#我选择锁住swapping因此需要在这个配置文件下再增加两行代码
es soft memlock unlimited
es hard memlock unlimited

以上参数介绍参考:https://my.oschina.net/987openlab/blog/94634

② vim /etc/sysctl.conf

vm.max_map_count=655360
fs.file-max=655360

注意:之后需要执行一句命令sysctl -p使系统配置生效(使用root用户)

再次重启各es节点就可以了,使用ps -ef|grep elasticsearch进程查看命令

 ps -ef|grep elasticsearch
es       10118 10083  0 16:58 pts/1    00:00:00 grep elasticsearch
es       29374     1  2 Jan02 ?        01:05:26 /opt/openjdk-1.8.0_92/bin/java -Xms750m -Xmx750m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -server -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -XX:+HeapDumpOnOutOfMemoryError -Des.path.home=/opt/es/server1/elasticsearch-6.0.1 -Des.path.conf=/opt/es/server1/elasticsearch-6.0.1/config -cp /opt/es/server1/elasticsearch-6.0.1/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
es       29487     1  0 Jan02 ?        00:28:45 /opt/openjdk-1.8.0_92/bin/java -Xms750m -Xmx750m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -server -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -XX:+HeapDumpOnOutOfMemoryError -Des.path.home=/opt/es/server2/elasticsearch-6.0.1 -Des.path.conf=/opt/es/server2/elasticsearch-6.0.1/config -cp /opt/es/server2/elasticsearch-6.0.1/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
es       29583     1  0 Jan02 ?        00:23:11 /opt/openjdk-1.8.0_92/bin/java -Xms750m -Xmx750m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -server -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -XX:+HeapDumpOnOutOfMemoryError -Des.path.home=/opt/es/server3/elasticsearch-6.0.1 -Des.path.conf=/opt/es/server3/elasticsearch-6.0.1/config -cp /opt/es/server3/elasticsearch-6.0.1/lib/* org.elasticsearch.bootstrap.Elasticsearch -d

可以发现10.47.227.13上三个master节点都正常启动了。

cerebro插件安装

es5版本后不支持head,kopf,这里安装cerebro。只需要在一台机器上操作即可

//解压cerebro
tar xf cerebro-0.8.1.tgz 

//修改配置,如果插件安装在集群机器上,则不需要配置hosts
vim conf/ application.conf
hosts = [
     {
         host = "http://10.47.227.13:9200"
         name = "local-es-cluster"
     },
]

//启动cerebro
./bin/cerebro &    

cerebro管理插件默认端口9000,访问http://10.47.227.13:9000即可进入cerebro管理页面。

填入集群访问地址 http://10.47.227.13:9200即可进入

猜你喜欢

转载自blog.csdn.net/tyrroo/article/details/85775898
今日推荐