Elasticsearch(二)---搭建
搭建es
不允许root用于运行
创建esuser用户:
设置密码
让esuser拥有sudo的权限,需要修改/etc/sudoers文件
需要先给/etc/sudoers添加写的权限
改完之后将写权限删除
三台服务器上操作
在/opt下创建目录es,将es的所有权切换给esuser
使用esuser账户将
elasticsearch-2.2.1.tar.gz
elasticsearch-analysis-ik-1.8.1.zip
elasticsearch-head-master.zip
上传到服务器的esuser家目录
解压elasticsearch-2.2.1.tar.gz到/opt
在三台服务器上依次设置:
安装插件
head插件
下载地址:
bin/plugin install file:///home/esuser/elasticsearch-head-master.zip
es/bin/plugin install
github使用的是SSLv2
CENTOS6.5 SSLv1
[esuser@node1 ~]$ /opt/es/elasticsearch-2.2.1/bin/plugin install file:///home/esuser/elasticsearch-head-master.zip
ik中文分词器插件
注意:是esuser用户来操作
下载地址:
如果elasticsearch/plugins不存在就创建该目录,然后执行:
unzip elasticsearch-analysis-ik-1.8.1.zip -d /opt/es/elasticsearch-2.2.1/plugins/ik
在三台服务器上同步。
重启ES即可。
在/etc/profile中配置es的bin目录
ES_HOME
PATH
前台启动
后台启动
访问es:
访问head插件
通过单播发现节点
elasticsearch-2.2不支持组播查找其他节点方式。
单播发现(unicast discovery)让ES连接一系列的主机,并试图发现更多关于集群的信息。使用单播时,我们告诉ES集群中其他节点的IP地址以及端口或端口范围。如下配置:
discovery.zen.ping.unicast.hosts: [“10.0.0.3”, “10.0.0.4:9300”, “10.0.0.5[9300-9400]”] |
并非所有的ES集群节点需要出现在单播列表中来发现全部的节点,但是必须为每个节点配置足够的地址,让其认识可用的“口碑传播”节点。例如,如果单播列表中的第一个节点认识7个集群节点中的3个,而单播列表中的第二个节点认识7个节点中的其他4个,那么该节点执行发现操作后就能找到集群中全部7个节点。在发现集群中的部分节点后,ES节点将进行主节点选举。
一旦集群中的节点发现了彼此,会协商谁将成为主节点。
主节点负责管理集群状态,即当前的设置和集群中分片、索引以及节点的状态。
在主节点被选举出来之后,会建立内部的ping机制来确保每个节点在集群中保持活跃和健康,称为错误识别(fault detection)。
所有的节点都有资格成为主节点,除非某个节点的node.master选项设置为false。
当集群中只有一个节点时,该节点先等一段时间,如果没有发现其他任何集群的节点,就将自己选为主节点。
设置主节点的最小数量,可以控制ES在成为健康集群之前,集群中多少个节点有资格成为主节点。
如果节点数量不会随着时间变化,可以将最小数量设置为集群总结点数,一般设置为集群数量的一半+1,也就是N/2+1。通过过半机制防止脑裂。
设置elasticsearch.yml中的
discovery.zen.minimum_master_nodes=N/2+1
可以使用如下的命令确认集群的状态以及哪个是主节点:
错误识别:
主节点ping集群中所有其他的节点,而且每个节点也会ping主节点来确认无需选举。
每个节点每隔discovery.zen.fd.ping_interval(默认是1s)发送一个ping请求,等待discovery.zen.fd.ping_timeout(默认是30s)的时间,并尝试最多discovery.zen.fd.ping_retries(默认3)次,如果ping不通,则宣布节点失联,并在需要的时候进行新的分片路由和主节点选举。
一旦一个节点ping不通,节点连不上,ES做的第一件事是自动地将剩下节点中的副本分片升为主分片,因为索引操作会首先更新主分片。
副本分片变为主分片之后,集群就会变为黄色的状态,表明有副本分片没有分配到某个节点。ES下一步需要创建更多的副本分片来保持索引的高可用。
一旦副本分片重新创建,并用于弥补损失的节点,集群将重回绿色状态,全部的主分片和其副本分片都分配到了某个节点。在这段时间之内由于没有数据丢失,整个集群都可用于搜索和索引。如果有丢失的数据,则集群状态转为红色。可以使用多个副本增强抗风险能力。
每个可以成为master的节点都会保有一个集群状态版本号
每个可以成为master的节点都有一个id
选取集群状态版本号高的作为master,如果版本号都一样,则选取id最小的节点成为主节点master。
- 点赞
- 收藏
- 关注作者
评论(0)