一、部署节点原理
- 多机集群中的节点可以分为master nodes和data nodes,在配置文件中使用Zen发现(Zen discovery)机制来管理不同节点。Zen发现是ES自带的默认发现机制,使用多播发现其它节点。只要启动一个新的ES节点并设置和集群相同的名称这个节点就会被加入到集群中。(所以,同集群的集群名称一致,才能便于自动发现)
- Elasticsearch集群中有的节点一般有三种角色:master node、data node和client node。
1)master node——master节点点主要用于元数据(metadata)的处理,比如索引的新增、删除、分片分配等。
2)client node——client 节点起到路由请求的作用,实际上可以看做负载均衡器。
3)data node——data节点上保存了数据分片。它负责数据相关操作,比如分片的 CRUD,以及搜索和整合操作。这些操作都比较消耗 CPU、内存和 I/O 资源;
二、三节点 Elasticsearch 分布式部署
- 节点规划
- master es-001
- client es-002
- data es-003
- 系统环境初始化
wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm
yum install jdk-8u181-linux-x64.rpm
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 10 >/proc/sys/vm/swappiness
echo "vm.swappiness = 10" >> /etc/sysctl.conf
echo "vm.max_map_count=655360" >> /etc/sysctl.conf
sysctl -p
vim /etc/security/limits.conf
root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536
- 下载&解压
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.tar.gz
tar zxf elasticsearch-6.3.1.tar.gz -C /opt/
cd /opt
ln -s elasticsearch-6.3.1/ elasticsearch
mkdir /data/elasticsearch/data -p
mkdir /data/elasticsearch/logs -p
* 修改配置文件/opt/elasticsearch/config/elasticsearch.yml
cat > /opt/elasticsearch/config/elasticsearch.yml <<EOF
cluster.name: es
node.name: "cdh-es-master"
node.master: true
node.data: true
path.data: /data0/elasticsearch/data
path.logs: /data0/elasticsearch/logs
#修改一下ES的监听地址,这样别的机器才可以访问
network.host: es-001
http.port: 9200
# 增加新的参数,这样head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
#分布式系统整个集群节点个数N要为奇数个
discovery.zen.ping.unicast.hosts: ["es-001:9300", "es-002:9300","es-003:9300"]
#master选举最少的节点数,这个一定要设置为N/2+1,其中N是:具有master资格的节点的数量,而不是整个集群节点个数。
discovery.zen.minimum_master_nodes: 2
gateway.recover_after_nodes: 3
gateway.recover_after_time: 5m
gateway.expected_nodes: 1
EOF
- 拷贝到其他机器并依次修改es-002,es003配置文件
主要区别在于:
节点: node.master node.data node.name network.host
master: true true es-master es-001
client: false true es-clinet es-002
data: true false es-data es-003
- 添加普通用户&启动ES
groupadd es && useradd es -g es && chown -R es:es /opt/elasticsearch-6.3.1
chown -R es:es /data/elasticsearch
su es -c "/opt/elasticsearch/bin/elasticsearch -d"
- 添加开机启动
chmod +x /etc/rc.d/rc.local
systemctl enable rc-local.service
echo 'su es -c "/opt/elasticsearch/bin/elasticsearch -d"' >> /etc/rc.local