[关闭]
@guodong 2018-01-29T23:10:40.000000Z 字数 2433 阅读 1039

Elasticsearch 5.1.2滚动升级至 5.6.4

Elasticsearch


升级Elasticsearch集群

Elasticsearch可以使用滚动升级进行升级,不会中断服务。本节将详细介绍如何使用滚动升级。
为了确定是否支持您的发行版的滚动升级,请参考这张表。
image_1bvbtk7tpihf1p4012em1v6g1rdo9.png-18.3kB

滚动升级

滚动升级允许Elasticsearch一次升级一个节点,而不会导致用户停机。

1.禁用分片分配

Disable shard allocation
当关闭节点时,分配过程将等待一分钟,然后开始将该节点上的分片复制到集群中的其他节点,导致大量浪费的IO。这可以通过关闭节点之前禁用分配来避免

PUT _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.enable": "none"
  }
}

2.停止非必要的索引并执行同步刷新(可选)

Stop non-essential indexing and perform a synced flush (Optional)
在升级过程中,您可以继续索引。但是,如果临时停止非必要的索引并发出同步刷新请求,分片恢复速度会快得多

POST _flush/synced

3.停止并升级单个节点

在开始升级之前关闭集群中的一个节点

安装并修改配置文件

1. elasticsearch.yml
  1. # 集群名称,各个节点的值必须一致
  2. cluster.name: elasticsearch_production
  3. # 节点名称,区分节点,各个节点的值不能一致
  4. node.name: node-1
  5. # 数据文件路径
  6. path.data: /opt/es/data
  7. # 日志文件路径
  8. path.logs: /opt/es/logs
  9. # 设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。同时也要允许elasticsearch的进程可以锁住内存,Linux下可以通过ulimit -l unlimited命令
  10. bootstrap.memory_lock: true
  11. # 因为Centos6不支持SecComp,而ES5.6.4默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动
  12. bootstrap.system_call_filter: false
  13. # 本机IP
  14. network.host: 192.168.6.104
  15. # 单播列表
  16. discovery.zen.ping.unicast.hosts: ["192.168.6.104", "192.168.6.105", "192.168.6.106"]
  17. # 防止脑裂,官方推荐设置成 N/2 + 1,N是集群中master节点的数量
  18. discovery.zen.minimum_master_nodes: 2
  19. # 存在至少2个节点(数据节点或者 master 节点)才进行数据恢复
  20. gateway.recover_after_nodes: 2
  21. # 等待10分钟,或者3个节点上线后,才进行数据恢复,这取决于哪个条件先达到
  22. gateway.expected_nodes: 3
  23. gateway.recover_after_time: 10m
  24. # 禁用xpack安全认证
  25. xpack.security.enabled: false
2. jvm.options
-Xms8g
-Xmx8g
3.elasticsearch和elasticsearch-plugin
export JAVA_HOME=/opt/jdk1.8.0_144
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/*.jar
export PATH=.:$JAVA_HOME/bin:$PATH

安装插件

cd /home/es/elasticsearch-5.6.4/bin

在线安装
./elasticsearch-plugin install x-pack

离线安装
wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-5.6.4.zip
./elasticsearch-plugin install file:///path/to/file/x-pack-5.6.4.zip

启动新节点

  1. # 后台启动
  2. ./elasticsearch -d
  3. # 查看节点状态
  4. GET _cat/nodes
  5. # 启用分片分配
  6. PUT _cluster/settings
  7. {
  8. "transient": {
  9. "cluster.routing.allocation.enable": "all"
  10. }
  11. }
  12. # 查看集群状态,变为Green为正常
  13. GET _cat/health

4.重复以上步骤

当集群稳定并且节点已经恢复时,对所有剩余节点重复上述步骤

5.升级Kibana

  1. # 修改配置文件
  2. vim /home/es/kibana-5.6.4-linux-x86_64/config/kibana.yml
  3. # 本机IP
  4. server.host: "192.168.6.104"
  5. # 访问es的地址
  6. elasticsearch.url: "http://192.168.6.104:9200"
  7. # 安装x-pack插件
  8. cd /home/es/kibana-5.6.4-linux-x86_64/bin/
  9. ./kibana-plugin install x-pack
  10. # 启动
  11. ./kibana
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注