附录 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 版本兼容性,而是删除对 Spark SQL 1.0-1.2 的支持。

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 中,Repository HDFS 插件 已移动主 Elasticsearch 项目。elasticsearch-hadoop 存储库中的文档页面已更新,并带有一个表示此移动的标题。

安全性

编辑

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

配置变更

编辑

由于底层安全系统的限制以及插件功能方式的更改,以下配置已在 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 版本

编辑

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

严格查询解析

编辑

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