要求
编辑要求
编辑在运行 elasticsearch-hadoop 之前,请务必查看以下要求。当在集群中部署 elasticsearch-hadoop 时,某些机器上的软件可能略有不同步,这一点尤其重要。尽管 elasticsearch-hadoop 会尽力回退并对其环境进行各种验证,但在升级期间进行快速的健全性检查可以为您省去很多麻烦。
在检查某个工件的版本时,请务必验证集群中的所有节点。
elasticsearch-hadoop 没有为 Hadoop(或其上构建的各种库,例如 Hive)或 Elasticsearch 添加额外的要求,但作为经验法则,请使用所述库的最新稳定版本(检查与 Hadoop 和 JDK 的兼容性,如果适用)。
JDK
编辑JDK 8 级(至少 u20 或更高版本)。 Elasticsearch 的最新支持矩阵可在此处找到:此处。请注意,JVM 版本对于稳定环境而言至关重要,因为不正确的版本可能会损坏底层数据,如本博客文章中所述。
可以从命令行检查可用的 JDK 版本
$ java -version java version "1.8.0_45"
Elasticsearch
编辑我们强烈建议使用最新的 Elasticsearch(当前为 8.17.0)。 虽然 elasticsearch-hadoop 保持与以前版本的 Elasticsearch 的向后兼容性,但我们强烈建议使用最新的稳定版本的 Elasticsearch。您可以在此处找到支持版本的矩阵。
Elasticsearch 版本显示在其文件夹名称中
$ ls elasticsearch-8.17.0
如果 Elasticsearch 正在运行(本地或远程),可以通过 REST 查找其版本
$ curl -XGET https://127.0.0.1:9200 { "status" : 200, "name" : "Dazzler", "version" : { "number" : "8.17.0", ... }, "tagline" : "You Know, for Search" }
Hadoop
编辑elasticsearch-hadoop 与 Hadoop 2 和 Hadoop 3 兼容(理想情况下是最新稳定版本)。它每天都会针对 Apache Hadoop 进行测试,但任何与 Apache Hadoop 兼容的发行版都应该可以正常工作。
要检查 Hadoop 的版本,可以参考其文件夹或 jar 包(其名称中包含版本),也可以从命令行进行检查
$ bin/hadoop version Hadoop 3.3.1
Apache Hive
编辑Apache Hive 0.10 或更高版本。 我们建议使用最新版本的 Hive(当前为 2.3.8)。
可以从其文件夹名称或命令行查找 Hive 版本
$ bin/hive --version Hive version 2.3.8
Apache Spark
编辑Spark 2.0 或更高版本。我们建议使用最新版本的 Spark(当前为 3.2.0)。由于 elasticsearch-hadoop 提供与 Apache Spark 的原生集成(推荐使用),因此使用哪个二进制文件并不重要。当使用 Hadoop 层集成两者时,情况也是如此,因为 elasticsearch-hadoop 支持大多数 Hadoop 发行版。
通常可以通过查看其文件夹名称来发现 Spark 版本
$ pwd /libs/spark/spark-3.2.0-bin-XXXXX
或者通过运行其 shell
$ bin/spark-shell ... Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 3.2.0 /_/ ...
Apache Spark SQL
编辑如果计划使用 Spark SQL,请确保添加适当的 Spark SQL jar 作为依赖项。虽然它是 Spark 发行版的一部分,但它不是 Spark core jar 的一部分,而是有自己的 jar。因此,在构建类路径时,请确保包含 spark-sql-<scala-version>.jar
或 Spark 程序集: spark-assembly-3.2.0-<distro>.jar
elasticsearch-hadoop 支持 Spark SQL 2.x 和 Spark SQL 3.x。 elasticsearch-hadoop 通过其主 jar 支持 Scala 2.11 上的 Spark SQL 2.x。 由于 Spark 2.x 和 3.x 彼此不兼容,并且 Scala 版本不兼容,因此 elasticsearch-hadoop 提供了多个不同的工件。 选择适合您的 Spark 和 Scala 版本的 jar。 有关更多信息,请参阅 Spark 章节。