Elasticsearch集群部署文档

elasticsearch   运维技术   大数据  

一、部署节点原理

  • 多机集群中的节点可以分为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