技术交流28群

服务热线

135-6963-3175

微信服务号

Elasticsearch之集群搭建 更新时间 2020-3-11 浏览1234次

首先准备三台服务器

1.在服务器安装jdk(该步骤省略)

2.安装es

下载elasticsearch-6.5.x.tar.gz并解压缩在三个节点。

编辑配置文件

[root@master elasticsearch-6.5.4]# vim config/elasticsearch.yml
#配置es的集群名称,默认是elasticsearch,
#es会自动发现在同一网段下的es,
# 如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
cluster.name: cell
#
# ------------------------------------ Node ------------------------------------
#node.name每个节点起一个名字
node.name: node_01
node.master: true
node.data: true
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /var/data/elasticsearch
#
# Path to log files:
#
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["192.168.100.101:9300","192.168.100.102:9300", "192.168.100.103:9300"]
discovery.zen.minimum_master_nodes: 2

属性说明:

node.name

每个节点起一个不同的名字

cluster.name

集群名字,三台集群的集群名字都必须一致

discovery.zen.minimum_master_nodes:2

表示集群最少的master数,如果集群的最少master数据少于指定的数,将无法启动,官方推荐node master数设置为集群数/2+1,我这里三台ES服务器,配置最少需要两台master,整个集群才可正常运行,

node.master

该节点是否有资格选举为master,如果上面设了两个mater_node 2,也就是最少两个master节点,则集群中必须有两台es服务器的配置为node.master: true的配置,配置了2个节点的话,如果主服务器宕机,整个集群会不可用,所以三台服务器,需要配置3个node.masdter为true,这样三个master,宕了一个主节点的话,他又会选举新的master,还有两个节点可以用,只要配了node master为true的ES服务器数正在运行的数量不少于master_node的配置数,则整个集群继续可用,我这里则配置三台es node.master都为true,也就是三个master。

master服务器主要管理集群状态,负责元数据处理,比如索引增加删除分片分配等,数据存储和查询都不会走主节点,压力较小,jvm内存可分配较低一点。

node.data

存储索引数据,三台都设为true即可

bootstrap.memory_lock: true

锁住物理内存,不使用swap内存,有swap内存的可以开启此项

discovery.zen.ping_timeout: 3000s

自动发现拼其他节点超时时间

discovery.zen.ping.unicast.hosts: ["ip1:9300","ip2:9300","ip3:9300"]

设置集群的初始节点列表,集群互通端口为9300


不能以root启动,所以创建elsearch用户组及elsearch用户

groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch
#更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch
chown -R elsearch:elsearch  elasticsearch
#elasticsearch为你elasticsearch的目录名称
#切换到elsearch用户再启动
su elsearch #切换账户
cd elasticsearch/bin #进入你的elasticsearch目录下的bin目录
./elasticsearch -d


出错

(1)不允许root登录异常:

su root
vi /etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
sysctl -p

(2)不允许外网访问异常:

设置外网访问

更改elasticsearch.yml文件

network.host: 0.0.0.0
http.port: 9200

#配置这个:否则head无法连接elasticsearch

http.cors.enabled: true
http.cors.allow-origin: "*"