Elasticscarch集群搭建

Elasticscarch集群环境搭建

准备环境

操作系统:CentOS 7
ElasticScarch版本:5.6
JDK:1.8

集群的构建方式和节点的介绍

我准备使用的VirtualBox虚拟机构建3个ElasticScarch的节点。
IP和主机名如下:

IP hostname
192.168.94.101 es-node1
192.168.94.102 es-node2
192.168.94.103 es-node3

在我的VirtualBox虚拟机中,有一个干净可复制的裸机版本,我只需要改改IP和hostname 即可使用。
可以参考我的文章:虚拟机搭建Linux开发环境(Centos 7)

开始环境的搭建

添加信息的用户组
使用命令(添加一个用户叫es 密码是root):

adduser es
passwd es
然后设置你的用户密码

编辑 /etc/sudoers文件添加上自己的用户信息

命令:vim /etc/sudoers

我的用户名叫es

image.png

保存退出

注意:在Elasticscarch集群中不允许使用root用户权限进行启动。

解压 Elasticscarch5.6

命令:sudo tar -zxvf elasticsearch-5.6.3.tar.gz

解压完毕
/usr/local/elasticsearch-5.6.3是我的安装目录

image.png

介绍一下目录的结构

目录名称 作用与用途
bin 用于运行Elasticsearch和管理一些应用的脚本
config 配置文件专用目录
lib Elasticsearch使用的库
modules 加载的模板列表(内置插件)
plugins 自定义插件目录
data 数据存储目录(下图没有这个目录是因为集群还没启动,启动后会自动生成该目录)
logs 日志存放目录(下图没有这个目录是因为集群还没启动,启动后会自动生成该目录)

目录结构如下:

image.png

设置配置文件

在设置配置文件之前必须要先了解三种节点

在Elasticsearch的工作机制中分别有三种节点,分别是MasterNode 、DataNode 、ClientNode,每个节点都有自己的分工来维持Elasticsearch的整体工作。

节点名称 节点的主要工作
MasterNode 管理着节点的加入、退出。用于存放元数据
DataNode 管理分片的数据 ,一个索引的一部分数据
ClientNode 调节器节点 多个DataNode返回的数据会给它进行二次聚合、排序等计算。

了解了以上的节点后下面来配置Elasticsearch。

配置Elasticsearch

注意事项:在Elasticsearch配置中需要注意两项的配置,一种是Elasticsearch本身的配置,
另外还需要修改Linux的一些内核参数。

进入Elasticsearch的配置目录
进入config配置文件目录你会看见有3个配置文件:


image.png
配置文件名称 作用与用途
elasticsearch.yml Elasticsearch核心的配置文件
jvm.options JVM的参数配置文件
log4j2.properties 日志的配置文件

编辑elasticsearch.yml文件

sudo vim elasticsearch.yml

所需修改的配置项:

参数名称 参数作用与用途
cluster.name 集群名称
node.name 节点名称
node.attr.rack: r1 属性
path.data 数据存放目录(不设置默认会在elasticsearch目录下创建data目录存放数据)
path.logs 日志存放目录(不设置默认会在elasticsearch目录下创建logs目录存放日志)
bootstrap.memory_lock: true es启动时锁内存设置成要设置成true
network.host: 对外发布的ip(设置自己的主机IP)
http.port: 对外发布的端口(不设置默认是9200)
discovery.zen.ping.unicast.hosts: 采用zen方式对外单播,组建集群的IP
discovery.zen.minimum_master_nodes: 防止脑裂参数(所有node节点 /2 +1)
bootstrap.system_call_filter: : 防火墙设置设置成false即可

cluster.name 配置:
elasticsearch会通过相同cluster.name组成一个集群,我有3台机器 所以我3台机器都设置成一样。


image.png

node.name配置:
节点名称的设置,为了更好的区分,我会用IP来命名它们的节点名称。

IP: 192.168.94.101

image.png

IP: 192.168.94.102

image.png

IP: 192.168.94.103

image.png

node.attr.rack:配置

三台机器默认开启

image.png

path.data配置:
数据存放的地方,默认我就不设置了
默认会在elasticsearch目录下创建data目录存放数据

image.png

path.logs配置:
日志存放的地方,默认我就不设置了
默认会在elasticsearch目录下创建logs目录存放日志

image.png

bootstrap.memory_lock配置:
避免报错 在启动elasticsearch要把内存锁起来,配置项把它设置成true

image.png

bootstrap.system_call_filter配置:
设置成false

image.png

network.host配置:
设置主机的IP对外提供服务,我这有三台主机

image.png
image.png
image.png

http.port配置:
这是对外提供的端口,默认我既是9200我就不改了

image.png

discovery.zen.ping.unicast.hosts设置:
采用zen方式对外单播,表示要和谁组建成集群。
下面是我三台机器的配置,不算本机其他的都要配上

192.168.94.101

image.png

192.168.94.102

image.png

192.168.94.103

image.png

discovery.zen.minimum_master_nodes配置:
该参数是防止脑裂的。里面参数定义
设置投票选举的最少的机器个数,等待最少设置的机器个数才能进行投票决定谁来当主master。

image.png

脑裂的介绍:
大家都知道多个master只有一个主master,
当主master出现故障的时候,其他的master节点就会顶上去做主master来维持整个集群的运作。
假设我现在的集群中有3个master 其中一个是主master 节点,当主master节点出现故障,其他两个master都会顶上去做主master,一个集群中不能够有2个主master。出现这种情况就叫脑裂,这时整个集群不知道到底要听谁的指挥。

设置好elasticsearch.yml 就保存退出。

设置jvm.options参数
在这个配置文件中我们只需要改堆就可以了,因为我的是虚拟机搭建的集群,我把它设置512m,默认情况下是2G
如果在生产环境中最大不要设置超过32GB,因为超过32GB JVM会用64位的指针,JVM的指针长了很多内存也就白白的浪费了。elasticsearch已经对对JVM进行过调优了,我们只需要改堆内存参数即可 把两个设置成一致。当然如果你对JVM调优熟悉到极致那就另说了。

sudu vim jvm.options

参数名称 参数作用与用途
-Xmx 堆内存
image.png

配置Linux的一些参数
通过配置完elasticsearch的配置文件后,集群还不能启动,还需要配置Linux的一些内核等一些参数

禁用swap:

sudo swapoff -a

修改Linux内核参数:

sudo vim /etc/security/limits.conf
添加以下内容:
* soft nofile 65536
* hard nofile 131072
* soft memlock unlimited
* hard memlock unlimited

如图:

image.png

修改虚拟内存空间及swap使用率:

sudo vim /etc/sysctl.conf

添加以下内容:
vm.max_map_count=655360
vm.swappiness=1

image.png

指定的文件加载系统参数:

sudo sysctl -p

修改创建本地线程数:

sudo vim /etc/security/limits.d/20-nproc.conf

改为:
* soft nproc 2048

我用的是CentOS 7 它默认大于2048,所以我不需要修改

image.png

注意:因为elasticsearch 不允许root用户启动,所以要给当前的用户分配执行的权限
执行命令 :sudo chown -R es:root /usr/local/elasticsearch-5.6.3
改变elasticsearch文件夹所有者到当前用户
我当前用户是es 密码是root 分配执行/usr/local/elasticsearch-5.6.3的权限
不设置会报错。

最后重启集群:

sudo init 6

启动elasticsearch集群

./bin/elasticsearch

你会发现整个集群已经起来了

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,454评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,553评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,921评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,648评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,770评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,950评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,090评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,817评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,275评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,592评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,724评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,409评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,052评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,815评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,043评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,503评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,627评论 2 350

推荐阅读更多精彩内容