apache-spark - apache spark 和 hadoop 之间的 Jar 冲突

标签 apache-spark hadoop hdfs hadoop-yarn

我尝试设置并运行在 YARN 之上运行并使用 HDFS 的 Spark 集群。

我首先使用 hadoop-3.1.0 为 HDFS 设置了 Hadoop。 然后我配置了 YARN 并启动了两者。 我能够将数据上传到 HDFS,yarn 似乎也能正常工作。

然后我只在我的master上安装了spark-2.3.0-bin-without-hadoop并尝试提交申请。 由于它是没有 Hadoop 的 spark,我不得不修改 spark-env.sh,添加文档中提到的以下行:

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

仅使用这一行我得到了以下异常:

Error: Could not find or load main class org.apache.spark.deploy.yarn.ApplicationMaster

我猜这意味着他没有找到 Spark 库。所以我将 spark jars 添加到类路径中:

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath):/usr/local/spark/jars/*

但现在我得到以下异常:

com.fasterxml.jackson.databind.JsonMappingException: Incompatible Jackson version: 2.7.8

事实证明,Hadoop 3.1.0 提供 Jackson 2.7.8,而 Spark 2.3.0 提供 Jackson 2.6.7。正如我所见,两者现在都在导致冲突的类路径中。

既然我真的需要 Hadoop 和 Spark 库来提交任何东西,我不知道如何解决这个问题。

最佳答案

How is Hadoop-3.0.0 's compatibility with older versions of Hive, Pig, Sqoop and Spark

@JacekLaskowski 的回答是 hadoop 3 不支持 spark。据我所知,过去 6 个月该领域没有任何变化。

关于apache-spark - apache spark 和 hadoop 之间的 Jar 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50320315/

相关文章:

hadoop - Hbase连接问题和无法创建表

hadoop - 在免费hadoop模式下运行官方示例时出现Spark异常

java - hadoop 中 map 阶段之后的 reduce 阶段如何工作

linux - 在安装 HDFS 时获取 "mount.nfs: mount system call failed"

python - HDFS IO 故障 "path is not a file"

scala - 如何将 RDD[List[String]] 转换为 String 并将其拆分

java - 如何在 Windows 上获取适用于 OpenJDK 11 的 tools.jar?

java - 如何让 Spark Streaming 在单元测试中计算文件中的单词数?

r - 是什么导致 R 在处理大型数据集时崩溃?

scala - 如何使用 spark 流读取 .csv 文件并使用 Scala 写入 parquet 文件?