es集群升级

  1. 禁止分片
    PUT _cluster/settings
    {
    “persistent”: {
    “cluster.routing.allocation.enable”: “primaries”
    }
    }
  2. 停止非必要索引并执行同步刷新
    POST _flush/synced
  3. 开始升级各个节点
  • 关闭单个节点
    supervisorctl stop es(使用supervisor对进程做管理)
  • 执行升级脚本
  1. 启动分片
    PUT _cluster/settings
    {
    “persistent”: {
    “cluster.routing.allocation.enable”: null
    }
    }

升级脚本:

#!/bin/bash

#***************************es简化安装**************************************
echo "**************请先确认所需的安装包都在/home/es下:*******************"
echo "**      1、es安装包                                                **"
echo "**      2、所需插件:geo、user-agent,并与版本配套                 **"
echo "**      3、x-pack 破解文件                                         **"
echo "*********************************************************************"
# step 0 : 定义旧版安装路径和新版本的版本号
# 旧版本安装路径
old_path="elasticsearch-6.7.0"
es_version="7.2.0"
echo "  >>>>>>>>>>>旧版本安装目录:$old_path"
echo "  >>>>>>>>>>>新版本号:$es_version"
#验证所需安装文件是否齐全
/usr/bin/ls -s /home/es/elasticsearch-7.2.0-linux-x86_64.tar.gz  x-pack-core-7.2.0.jar repository-hdfs-7.2.0.zip
if [ $? -eq 0 ]
then
# step 1 : 解压es压缩包
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>step 1 : 解压es压缩包......"
elif [ -d "elasticsearch-$es_version" ]; then
echo '!!!!!!!!!!!!!!!该版本['$es_version']存在, 无法安装'
exit -1
fi
tar -zxf elasticsearch-$es_version-linux-x86_64.tar.gz

# step 2 : 安装插件
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>step 2 : 插件......"
echo "    >>>>>>>>>>>>>>>>>> 安装 repository-hdfs..... "
/home/es/elasticsearch-$es_version/bin/elasticsearch-plugin install file:///home/es/repository-hdfs-$es_version.zip

# step 3 : 破解xpack
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>step 3 : 破解xpack......"
mv /home/es/elasticsearch-$es_version/modules/x-pack-core/x-pack-core-$es_version.jar /home/es/elasticsearch-$es_version/modules/x-pack-core/x-pack-core-$es_version.jar.bak
cp /home/es/x-pack-core-$es_version.jar /home/es/elasticsearch-$es_version/modules/x-pack-core/

# step 4 : 设置配置文件
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>step 4 : 设置配置文件......"
echo "   >>>>>>>>>>>>>>>>>>配置jvm......"
#then
cp /home/es/elasticsearch-$es_version/config/jvm.options /home/es/elasticsearch-$es_version/config/jvm.options."`date +%Y-%m-%d`"
# 配置jvm
sed -i 's/-Xms1g/-Xms30g/g' /home/es/elasticsearch-$es_version/config/jvm.options
sed -i 's/-Xmx1g/-Xmx30g/g' /home/es/elasticsearch-$es_version/config/jvm.options
#  获取配置文件GC configuration的行号
line=`sed -n '/## GC configuration/=' /home/es/elasticsearch-$es_version/config/jvm.options | tail -n1`
echo $line
let lend=$line+3
echo $lend
sed -i "$line,$lend s/^/#&/g" /home/es/elasticsearch-$es_version/config/jvm.options
#增加g1配置
let line=$line+5
sed -i "$line s/^/##config G1GC by install-----------------\n/g" /home/es/elasticsearch-$es_version/config/jvm.options
let line=$line+1
sed -i "$line s/^/-XX:-UseConcMarkSweepGC\n-XX:-UseCMSInitiatingOccupancyOnly\n-XX:+UseG1GC\n-XX:InitiatingHeapOccupancyPercent=75\n##---------------------------\n\n/g" /home/es/elasticsearch-$es_version/config/jvm.options
echo "   >>>>>>>>>>>>>>>>>>配置elasticsearch......"
cp -r $old_path/config/certs /home/es/elasticsearch-$es_version/config/
mv /home/es/elasticsearch-$es_version/config/elasticsearch.yml /home/es/elasticsearch-$es_version/config/elasticsearch.yml."`date +%Y-%m-%d`"
egrep -Ev "#|^$" $old_path/config/elasticsearch.yml >/home/es/elasticsearch-$es_version/config/elasticsearch.yml
chown -R es.es /home/es/elasticsearch-$es_version
# step 5 : 配置supervisor
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>step 5 : 配置supervisor......"
echo "[program:es]" >> /etc/supervisord.d/es$es_version.ini.disable
echo "command=su -c '/home/es/elasticsearch-"$es_version"/bin/elasticsearch' es" >> /etc/supervisord.d/es$es_version.ini.disable
echo "process_name=%(program_name)s" >> /etc/supervisord.d/es$es_version.ini.disable
echo "stdout_logfile=/home/es/logs/es_stdout.log" >> /etc/supervisord.d/es$es_version.ini.disable
echo "environment=JAVA_HOME=\""$JAVA_HOME"\"" >> /etc/supervisord.d/es$es_version.ini.disable
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值