原先ES版本为2.3,现在升级到5.0 。 升级实际上就是全新安装,需要注意的是,要备份好原先的配置文件,日志文件,数据存储文件。
一.stop redis logstash 保证没有新的数据进入到ES
二. sotp one node of ES
(1) disabling allocation before shutting down a node
curl -XPUT http://localhost:9200/_cluster/settings -d '{
"transient": {
"cluster.routing.allocation.enable": "none"
}
}'
(2) curl -XPOST http://localhost:9200/_flush/synced
三. back up old ES and old ES data
(1) ES-HOME/config/elasticsearch.yml
(2) $path.data
(3) $path.logs
四、install
upload and unzip elasticsearch-5.0.0.zip on each node server
五、config
(1)refer to the exsiting config file to configure ES-HOME/config/elasticsearch.yml
(注意,设置参数的时候‘:’后面要有空格)
cluster.name: esapp (同网段会自动寻找cluster.name相同的作为群集环境。)
node.name: esnode0 (每个node名字要不同)
node.master: true (是否为master)
node.data: true (是否存储数据,以后参考,尽量master不存储数据,只在slave中存储数据)
path.data: /apphome/es/data (数据存放目录)
path.logs: /apphome/es/logs (日志存放目录)
network.host: 0.0.0.0 (修改一下ES的监听地址,这样别的机器也可以访问)
discovery.zen.ping.unicast.hosts: ["esnode0"] (master slave 配置相同,都配置master的nodename)
(2) 设置内核参数: vi /etc/sysctl.conf # 增加下面的内容
fs.file-max=65536
vm.max_map_count=262144
(3)设置资源参数: vi /etc/security/limits.conf # 修改
* soft nofile 32768
* hard nofile 65536
(4)修改进程数 执行一下命令
ulimit -u 2048
六、plugin head:
参考链接:https://my.oschina.net/u/3121197/blog/808841
注: 由于ES5要求JDK 1.8版本。而启动ES的OS账号,还需要启动其他JDK1.7版本的APP。所以这里对appadmin这个OS账号的环境变量做了一些特殊处理。
详细参见:https://my.oschina.net/u/3121197/blog/808882
官方文档参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/rolling-upgrades.html#upgrade-node
其他参考资料:https://my.oschina.net/shawnplaying/blog/801485