安装

编辑

elasticsearch-hadoop 二进制文件可以通过从 elastic.co 网站下载 ZIP 文件(包含项目 jar 包、源代码和文档)获取,也可以使用任何与 Maven 兼容的工具以及以下依赖项:

<dependency>
  <groupId>org.elasticsearch</groupId>
  <artifactId>elasticsearch-hadoop</artifactId>
  <version>8.16.0</version>
</dependency>

上述 jar 包包含 elasticsearch-hadoop 的所有功能,运行时不需要任何其他依赖项;换句话说,可以直接使用。

elasticsearch-hadoop 二进制文件适用于 Hadoop 2.x(也称为 YARN)环境。对 Hadoop 1.x 环境的支持已在 5.5 版本中弃用,并且在 6.0 版本中将不再进行测试。

最小化二进制文件

编辑

除了 *uber* jar 包之外,elasticsearch-hadoop 还为每个集成提供了最小化的 jar 包,这些 jar 包专为只使用 *一个* 模块的用户而设计(在所有其他情况下,推荐使用 uber jar 包);这些 jar 包体积更小,并使用专用的 pom 文件,只包含必要的依赖项。这些 jar 包位于相同的 groupId 下,使用具有 elasticsearch-hadoop-{integration} 模式的 artifactId

Map/Reduce。

<dependency>
  <groupId>org.elasticsearch</groupId>
  <artifactId>elasticsearch-hadoop-mr</artifactId> 
  <version>8.16.0</version>
</dependency>

*mr* 构件

Apache Hive。

<dependency>
  <groupId>org.elasticsearch</groupId>
  <artifactId>elasticsearch-hadoop-hive</artifactId> 
  <version>8.16.0</version>
</dependency>

*hive* 构件

Apache Spark。

<dependency>
  <groupId>org.elasticsearch</groupId>
  <artifactId>elasticsearch-spark-30_2.12</artifactId> 
  <version>8.16.0</version>
</dependency>

*spark* 构件。请注意后缀中的 -30 部分,它表示与构件兼容的 Spark 版本。对于 Spark 3.0+,使用 30;对于 Spark 2.0+,使用 20;对于 Spark 1.3-1.6,使用 13。请注意 _2.12 后缀,它表示与构件兼容的 Scala 版本。目前它与 Spark 本身使用的版本相同。

Spark 连接器框架对版本不兼容性最为敏感。为方便起见,下面提供了版本兼容性矩阵

Spark 版本 Scala 版本 ES-Hadoop 构件 ID

1.0 - 2.x

2.10

<不支持>

1.0 - 1.6

2.11

<不支持>

2.x

2.11

elasticsearch-spark-20_2.11

2.x

2.12

elasticsearch-spark-20_2.12

3.0+

2.12

elasticsearch-spark-30_2.12

3.2+

2.13

elasticsearch-spark-30_2.13

开发版本

编辑

开发(或每日或快照)版本每天都会发布到 *sonatype-oss* 仓库(见下文)。请确保使用快照版本。

<dependency>
  <groupId>org.elasticsearch</groupId>
  <artifactId>elasticsearch-hadoop</artifactId>
  <version>{version}-SNAPSHOT</version> 
</dependency>

请注意表示开发版本的 *BUILD-SNAPSHOT* 后缀

还要启用专用的快照仓库

<repositories>
  <repository>
    <id>sonatype-oss</id>
    <url>http://oss.sonatype.org/content/repositories/snapshots</url> 
    <snapshots><enabled>true</enabled></snapshots> 
  </repository>
</repositories>

添加快照仓库

在仓库上启用 *快照* 功能,否则 Maven 将找不到这些快照。

升级您的堆栈

编辑

Apache Hadoop 版 Elasticsearch 是 Elasticsearch 的客户端库,尽管它具有扩展的功能来支持对 Hadoop/Spark 的操作。升级 Hadoop/Spark 版本时,最好检查以确保您的新版本受连接器支持,并根据需要升级您的 elasticsearch-hadoop 版本。

Apache Hadoop 版 Elasticsearch 与 Elasticsearch 上一个主要版本的最新次要版本保持向后兼容性(5.X 支持回溯到 2.4.X,6.X 支持回溯到 5.6.X,依此类推)。升级 Elasticsearch 版本时,最好先升级到新版本(或更高版本)的 elasticsearch-hadoop。新的 elasticsearch-hadoop 版本应该继续适用于您之前的 Elasticsearch 版本,允许您正常升级。

Apache Hadoop 版 Elasticsearch 不太支持滚动升级。在滚动升级期间,elasticsearch-hadoop 正在与之通信的节点将定期消失并重新上线。由于 elasticsearch-hadoop 在滚动升级期间会遇到持续的连接故障,因此您的作业很可能会失败。因此,建议您在滚动升级过程中禁用任何针对 Elasticsearch 的基于 elasticsearch-hadoop 的写入或读取作业。