附录 C:重大变更编辑

为清楚起见,我们始终在每个版本的发行说明顶部列出所有重大变更。

8.9 中的重大变更编辑

8.9 中移除的支持技术编辑

elasticsearch-hadoop 8.9 中已移除对以下不太流行的技术的支持。

  • Spark 1.x(仍然支持 Spark 2.x 和 3.x)
  • Spark 2.x 的 Scala 2.10 支持(仍然支持 Scala 2.11 及更高版本)
  • Apache Pig
  • Apache Storm

8.0 中的重大变更编辑

默认滚动大小现在为 1000编辑

我们已将 es.scroll.size 默认值从 50 增加到 1000。如果您在低内存环境中部署 ES-hadoop,请考虑降低 es.scroll.size 以避免出现问题。

8.0 中的弃用编辑

以下功能已在 elasticsearch-hadoop 8.0 中弃用,并将在未来版本中移除。虽然这不会立即影响您的应用程序,但我们强烈建议您在升级到 8.0 后采取所述步骤来更新您的代码。

Spark 1.x 支持已弃用编辑

Spark 1.x 不再维护。仍然支持 Spark 2 和 Spark 3。

Spark 2.x 的 Scala 2.10 支持已弃用编辑

Spark 在 Spark 2.0.0 版本中弃用了对 Scala 2.10 的支持,并在 2.3.0 版本中将其移除。Spark 2.x 支持 Scala 2.11 和 2.12。

Hadoop 1.x 支持已弃用编辑

Hadoop 1.x 不再维护。自 elasticsearch-hadoop 6.0 以来,尚未测试对其的支持。现在正式弃用对它的支持。支持 Hadoop 2 和 Hadoop 3。

Apache Pig 支持已弃用编辑

Apache Pig 不再维护。

Apache Storm 支持已弃用编辑

Apache Storm 并不是一个流行的 Elasticsearch 集成。

7.0 中的重大变更编辑

Cascading 集成已移除编辑

我们支持的每个集成都会在 ES-Hadoop 中添加新功能时产生测试和维护成本。在过去几年中,我们已经看到 Cascading 集成的使用统计数据下降。这些数据包括下载量、社区帖子和未解决的问题。此外,ES-Hadoop 仅支持 Cascading 2 系列。Cascading 已经进入 3.X 系列,我们还没有看到对任何更新版本的兴趣或压力。由于这些因素,Cascading 在 6.6 版本中被弃用,并在 7.0.0 版本中被移除。

现在需要 Java 8 或更高版本编辑

ES-Hadoop 7.0.0 及更高版本至少需要 Java 1.8 或更高版本。该库将不再针对 Java 1.6 或 Java 1.7 进行编译。

配置变更编辑

es.input.use.sliced.partitions 已移除。

6.0 中的重大变更编辑

本节讨论如果您将 ES-Hadoop 从 5.x 版本升级到 6.x 版本,应该注意的变更。

配置变更编辑

es.input.use.sliced.partitions 在 6.5.0 中已弃用,并将在 7.0.0 中移除。es.input.max.docs.per.partition 的默认值 (100000) 也将在 7.0.0 中移除,从而默认禁用切片滚动,并将其切换为显式选择加入的功能。

es.update.script 已弃用,取而代之的是新的 es.update.script. inline 选项。es.update.script 配置将继续作为旧版配置,其含义与 es.update.script.inline 相同。

索引和类型名称中的模式格式编辑

6.0 版本即将移除每个索引多个类型。所有项目测试都已迁移到尽可能使用单一类型。此迁移揭示了 Pig 和 Cascading 在这些框架如何与提供的索引/类型名称交互方面的问题。在设置过程中,Pig 和 Cascading 尝试将这些索引名称解析为路径,当索引中包含格式化模式时(例如 index-{event:yyyy.MM.dd}/type),路径解析就会中断。展望未来,分隔字段名称和格式的冒号字符 : 将更改为管道字符 |。新的模式化索引名称示例为 index-{event|yyyy.MM.dd}/type。5.x 将支持这两种分隔符,但在遇到冒号 : 时会记录弃用消息。

TTL 和时间戳元字段编辑

Elasticsearch 6.0 将移除文档索引和更新请求中允许的 TTL 和时间戳元字段。因此,我们将在 6.0 中移除指定它们的功能,并在 5.x 中弃用它们的使用。

Hadoop 1.x 支持编辑

从 6.0.0 开始,我们将不再在 Hadoop 1.x 版本上进行测试。这些版本已经被认为是生命周期结束很长时间了。虽然连接器可能继续适用于这些版本,但我们不再正式支持它们。使用这些版本需要您自担风险!

YARN 集成已停止编辑

由于 YARN 在支持长时间运行的进程方面的限制,我们决定停止开发并停止 ES-Hadoop 中的 YARN 集成。我们感谢社区参与测试版。如果您对此有任何问题或疑虑,请随时在我们的论坛上讨论。

默认支持的 Scala 版本现在为 2.11编辑

在 6.0.0 中,我们的 ES-Hadoop jar 包将默认附带针对 Scala 2.11 编译的 Spark。我们将继续在兼容性工件中支持 Scala 2.10,但主项目工件将默认以 Scala 2.11 为目标。

5.0 中的重大变更编辑

本节讨论如果您将 ES-Hadoop 从 2.x 版本升级到 5.x 版本,应该注意的变更。

支持的 Hadoop 版本编辑

ES-Hadoop 5.0 增加了对 Hadoop 生态系统中新版本软件的支持。在这些周期中,通常会为了稳定性和清理旧代码而放弃对旧版本的支持。请注意 5.0 中以下版本兼容性变更

  • 已移除对 Hive 0.13 和 0.14 的支持。已知这些版本的 Hive 存在严重问题,这些问题已在 1.0 中修复。Hive 1.0 已经发布了一段时间,大多数发行版都已经切换到它。ES-Hadoop 5.0 将继续支持 Hive 1.0。
  • 随着对 Storm 1.x 的支持,由于向后兼容性问题,已移除对 Storm 0.9 的支持。
  • 已移除对 SparkSQL 1.0-1.2 的支持。SparkSQL 最初在 Spark 1.0-1.2 中作为 alpha 版本发布,但自 Spark 1.3 以来,它已经变得稳定,并且 API 发生了巨大变化。此外,我们还增加了对 Spark 2.0 的支持,它与以前版本的 Spark 二进制不兼容。我们决定放弃对 Spark SQL 1.0-1.2 的支持,而不是同时支持三种不同版本兼容性的 Spark。

ES-Hadoop 中包含的 Spark jar 包的名称编辑

随着对 Spark 1.0-1.2 支持的移除以及对 Spark 2.0 支持的添加,ES-Hadoop 5.0 中包含的所有 Spark 工件的名称都已更改。此版本中的所有 Spark 工件现在都在其名称中明确标明了其 Spark 和 Scala 版本(而不仅仅是 Scala,并且*有时*是 Spark)。

表 1:从 2.x 到 5.x 的 Spark Jar 名称更改

Spark 版本 Scala 版本 ES-Hadoop 2.x 名称 ES-Hadoop 5.x 名称

1.0 - 1.2

2.10

elasticsearch-spark-1.2_2.10-2.4.0.jar

<已移除>

1.0 - 1.2

2.11

elasticsearch-spark-1.2_2.11-2.4.0.jar

<已移除>

1.3 - 1.6

2.10

elasticsearch-spark_2.10-2.4.0.jar

elasticsearch-spark-13_2.10-5.0.0.jar

1.3 - 1.6

2.11

elasticsearch-spark_2.11-2.4.0.jar

elasticsearch-spark-13_2.11-5.0.0.jar

2.0+

2.10

<不适用>

elasticsearch-spark-20_2.10-5.0.0.jar

2.0+

2.11

<不适用>

elasticsearch-spark-20_2.11-5.0.0.jar

HDFS 存储库编辑

在 5.0 中,HDFS 存储库插件几乎是从头开始重新构建的,以便与 Elasticsearch 插件框架中安全策略的更改兼容。

代码已移动编辑

在 5.0 中,存储库 HDFS 插件已移动主 Elasticsearch 项目。 elasticsearch-hadoop 存储库中的文档页面已更新,标题指示了此移动。

安全编辑

不再需要禁用 Elasticsearch 中的 Java SecurityManager 即可使 HDFS 存储库插件正常运行。 Elasticsearch 5.0 要求所有插件都能与配置的 SecurityManager 正常配合使用。该插件经过大量修改,以允许与此新约束兼容。这应该允许您在维护安全的 Elasticsearch 实例的同时仍然使用 HDFS 作为存储快照的位置。

配置更改编辑

由于底层安全系统的限制以及插件功能方式的变化,以下配置已在 5.0 中删除,没有替代选项

  • concurrent_streams
  • user_keytab
  • user_principal
  • user_principal_hostname

支持的版本编辑

以前,HDFS 存储库通过两个发行版支持 Apache Hadoop 1.x(默认)和 Apache Hadoop 2.x。在 5.0 中,现在只有一个针对最新 Apache Hadoop 2.x(此时为 2.7.1)构建的发行版。 Apache Hadoop 1.x 的发行版已被删除。

版本 light 已删除编辑

即使 Elasticsearch 节点上已经安装了 Hadoop,出于安全原因,也需要将所需的库放在插件文件夹下。因此,5.0 中不再提供不包含 Hadoop 客户端依赖项的存储库插件的 light 发行版。

严格的查询解析编辑

在以前的版本中,用户能够指定修改提供给客户端的查询 DSL 字符串中的搜索属性的选项。在某些情况下,这些属性会与框架在读取操作期间执行搜索的方式冲突。在 5.0 中,指定查询 DSL 字符串时,如果存在 query 字段,则会提取其内容并丢弃所有其他内容(例如 sourcesize)。如果没有 query 字段,则在执行期间,整个文本会嵌套在 query 字段内。