安装
编辑安装
编辑可以从 elastic.co 网站下载 ZIP 文件(包含项目 JAR 包、源代码和文档)获取 elasticsearch-hadoop 二进制文件,也可以使用任何与 Maven 兼容的工具,并使用以下依赖项:
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch-hadoop</artifactId> <version>8.17.0</version> </dependency>
上面的 JAR 包包含 elasticsearch-hadoop 的所有功能,并且在运行时不需要任何其他依赖项;换句话说,它可以直接使用。
elasticsearch-hadoop 二进制文件适用于 Hadoop 2.x(也称为 YARN)环境。对 Hadoop 1.x 环境的支持已在 5.5 中弃用,并且在 6.0 中将不再进行测试。
极简二进制文件
编辑除了 uber JAR 包之外,elasticsearch-hadoop 还为每个集成提供了极简 JAR 包,专为只使用一个模块的用户量身定制(在所有其他情况下,建议使用 uber
JAR 包);这些 JAR 包体积更小,并使用专门的 POM 文件,仅涵盖所需的依赖项。它们在相同的 groupId
下可用,使用模式为 elasticsearch-hadoop-{集成}
的 artifactId
Map/Reduce。
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch-hadoop-mr</artifactId> <version>8.17.0</version> </dependency>
Apache Hive。
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch-hadoop-hive</artifactId> <version>8.17.0</version> </dependency>
Apache Spark。
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch-spark-30_2.12</artifactId> <version>8.17.0</version> </dependency>
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>
但也要启用专用的快照存储库
升级您的堆栈
编辑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 的写入或读取作业。