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