elasticsearch 分布式环境搭建
es下载及目录介绍
es官网地址:https://www.elastic.co/downloads/elasticsearch
本集群:
192.168.190.220 python
192.168.190.221 python02
192.168.190.222 python03
bin:存放es的一些可执行脚本,比如用于启动进程的elasticsearch命令,以及用于安装插件的elasticsearch-plugin插件
conf:用于存放es的配置文件,比如elasticsearch.yml
data:用于存放es的数据文件,就是每个索引的shard的数据文件
logs:用于存放es的日志文件
plugins:用于存放es的插件
script:用于存放一些脚本文件
es的主要配置文件是elasticsearch.yml,部署和集群的重要参数都是修改这个文件
修改es的配置文件
cluster.name
node.name
network.host
discovery.zen.ping.unicast.hosts
在elasticserarch.yml中配置一下属性:
#集群的名字
cluster.name: es_cluster
#节点的名字
node.name: node-es01
#配置非回环地址
network.host: 192.168.190.220
#配置unicastz中间路由的node
discovery.zen.ping.unicast.hosts: ["python", "python02","python03"]
设置集群名和主机名
非回环地址和unicast相关配置
一般建议在生产环境中,必须将这些重要的文件路径,都重新设置一下,放在es安装目录之外。方便集群升级
path.data:用于设置数据文件的目录
path.logs:用于设置日志文件的目录
path.plugins:用于设置插件存放的目录
在es部署的每个节点上创建一下目录
mkdir -p /var/log/elasticsearch
mkdir -p /var/data/elasticsearch
mkdir -p /var/plugin/elasticsearch
mkdir -p /etc/elasticsearch
在elasticserach.yml中配置以下属性
path.logs: /var/log/elasticsearch
path.data: /var/data/elasticsearch
path.plugins: /var/plugin/elasticsearch
修改完配置文件后,把es拷贝到其他两个节点
[root@python elasticsearch]# scp -r /opt/software/elasticsearch-5.5.0 root@path02:/opt/software/
[root@python elasticsearch]# scp -r /opt/software/elasticsearch-5.5.0 root@path03:/opt/software/
拷贝后修改属性networ.host的IP地址和节点名字
#配置python02主机上的非回环地址
network.host: 192.168.190.221
#节点的名字
node.name: node-es02
#配置python03主机上的非回环地址
network.host: 192.168.190.222
#节点的名字
node.name: node-es03
读取配置文件的步骤
已经初步配置好了,各个节点,首先通过network.host绑定到了非回环的ip地址,从而可以跟其他节点通信
通过discovery.zen.ping.unicast.hosts配置了一批unicast中间路由的node
所有node都可以发送ping消息到路由node,再从路由node获取cluster state回来
接着所有node会选举出一个master
所有node都会跟master进行通信,然后加入master的集群
要求cluster.name必须一样,才能组成一个集群
node.name就标识出了每个node我们自己设置的一个名称
根据自己的集群设置重要的参数
es的默认参数是非常好的,适合绝大多数的情况,尤其是一些性能相关的配置。es不像hadoop生态系统中的那样,某一个配置能大大优化集群。但是根据自己集群的规模不同,某少数配置需要修改。
需要将./elasticsearch-5.5.0/config/下的所有配置文件拷贝到config指定的路径下
[root@python02 software]# cp elasticsearch-5.5.0/config/* /etc/elasticsearch/
[root@python03 software]# cp elasticsearch-5.5.0/config/* /etc/elasticsearch/
启动集群
./bin/elasticsearch -Epath.conf=/etc/elasticsearch/
启动集群会报一些错误
创建启动es的用户
[root@python03 ~]# useradd es
赋予权限
[root@python03 ~]# chown -R es:es /var/log/elasticsearch
[root@python03 ~]# chown -R es:es /var/data/elasticsearch
[root@python03 ~]# chown -R es:es /etc/elasticsearch
[root@python03 ~]# chown -R es:es /var/plugin/elasticsearch
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536] 解决如下
[root@python03 ~]# sysctl -w vm.max_map_count=262144
[root@python03 ~]# sysctl -a|grep vm.max_map_count
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]解决如下
修改/etc/security/limits.conf文件,添加或修改如下行:
* hard nofile 65536
* soft nofile 65536
再启动集群
./bin/elasticsearch -Epath.conf=/etc/elasticsearch/