Elasticsearch-OSS 6.8升级至7.x及与标准包差异咨询
Elasticsearch-OSS相关问题解答
1. Elasticsearch-OSS包与标准包的区别
- 协议差异:OSS版本基于Apache 2.0开源协议,可自由下载、修改、分发,无使用限制;官方标准发行版(Default Distribution)包含闭源商业组件,采用Elastic License,部分高级功能需付费订阅才能使用。
- 功能范围:OSS版仅提供Elasticsearch核心功能,包括索引创建、全文搜索、集群基础管理、REST API等;标准发行版集成了全套X-Pack组件,涵盖安全认证、用户权限控制、集群监控告警、机器学习、SQL查询、数据可视化对接等商业特性。
- 版本后续变化:从7.10版本开始,Elastic不再单独提供OSS发行版,将原OSS的开源功能整合到默认发行版中,但协议调整为SSPL(Server Side Public License)。
2. Elasticsearch-OSS 6.8升级至7.1或7.17版本的步骤
前置准备
- 备份所有索引数据:通过
snapshotAPI创建集群快照,存储到独立的文件系统或云存储中,避免升级失败导致数据丢失。 - 检查集群状态:确保集群健康状态为
green,所有分片都已成功分配,无未解决的集群异常。 - 升级依赖环境:7.x版本要求使用OpenJDK 11,需先卸载原6.8版本使用的JDK 8,安装符合要求的JDK版本。
可选升级方式
方式一:滚动升级(不中断服务,适合生产集群)
- 修改旧节点配置:在每个6.8 OSS节点的
elasticsearch.yml中添加compatibility.override_main_response_version: true,开启跨版本兼容性。 - 关闭自动分片分配:执行API命令:
curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d' { "persistent": { "cluster.routing.allocation.enable": "none" } } ' - 逐个升级节点:停止单个OSS节点,卸载旧版本,安装目标版本的官方默认发行版;迁移原配置文件到新安装目录,若不需要商业功能,可在
elasticsearch.yml中添加xpack.security.enabled: false、xpack.monitoring.enabled: false等配置禁用X-Pack组件。 - 启动新节点,等待节点加入集群,确认集群状态恢复为
green后,再处理下一个节点。 - 所有节点升级完成后,开启自动分片分配:
curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d' { "persistent": { "cluster.routing.allocation.enable": "all" } } ' - 移除兼容性配置,执行索引升级检查:
curl -X POST "localhost:9200/_upgrade"
方式二:全集群重启升级(操作简单,适合小型集群)
- 停止所有Elasticsearch OSS节点。
- 备份数据目录(默认
data/)和配置文件(config/)到安全位置。 - 卸载旧的OSS版本,安装目标版本的官方默认发行版。
- 合并原配置文件到新的
elasticsearch.yml中,注意7.x版本部分配置项有变更(如network.host默认值、JVM堆内存参数调整),同时按需禁用X-Pack商业组件。 - 启动所有新节点,等待集群状态恢复为
green,执行POST /_upgrade验证索引兼容性。
关键注意事项
- 7.x版本无单独OSS发行包,只能安装官方默认发行版,可通过配置禁用不需要的商业功能。
- 升级后需检查业务代码中使用的API是否兼容7.x版本,部分6.x的废弃API在7.x中已被移除。
- 若升级到7.17(7.x最后一个LTS版本),需确认其系统要求与当前环境匹配。
关于官方文档无OSS内容的说明
Elastic在7.10版本后停止发布单独的OSS发行版,官方文档也逐步移除了OSS相关的专门章节,早期6.x版本的OSS文档已归档,因此当前官方主站文档中难以找到相关内容。
内容的提问来源于stack exchange,提问作者atsntc
相关产品推荐
相关产品推荐

