1.找出需要配置的地方

集群满足下面的条件即可

node.name: hadoop-master

network.host: hadoop-master

discovery.zen.ping.unicast.hosts: ["hadoop-master:9300","hadoop-slave1:9300","hadoop-slave2:9300"]

因此将配置/usr/hdp/3.0.1.0-187/es/elasticsearch-6.2.2/config/elasticsearch.yml修改为如下

node.name: HOSTNAME

network.host: HOSTNAME

discovery.zen.ping.unicast.hosts: [ES_DISCOVERHOSTS]

2.直接上代码

#! /bin/bash

hostname=$HOSTNAME
master=$MASTER
slaves=$SLAVES
arr=(${slaves//,/ })


#config /usr/hdp/3.0.1.0-187/es/elasticsearch-6.2.2/config/elasticsearch.yml
es_master=$master":9300"
es_slave=""
for ele1 in ${arr[@]}
do
es_slave="$es_slave,\"$ele1:9300\""
done
echo $es_slave
es_discoverhosts="\"$es_master\"$es_slave"

echo $es_discoverhosts


sed -i "s#ES_DISCOVERHOSTS#${es_discoverhosts}#g" /usr/hdp/3.0.1.0-187/es/elasticsearch-6.2.2/config/elasticsearch.yml
sed -i "s#HOSTNAME#${hostname}#g" /usr/hdp/3.0.1.0-187/es/elasticsearch-6.2.2/config/elasticsearch.yml

3.创建用户并设置权限

useradd es 

passwd es

chown -R es /usr/hdp/3.0.1.0-187/es/elasticsearch-6.2.2/

4.修改配置

vim /etc/sysctl.conf

vm.max_map_count=655360

5.验证

curl http://hadoop-master:9200/_cat

curl http://hadoop-master:9200/_cat/health?v