apache spark 和 hadoop 之间的 Jar 冲突
Jar conflicts between apache spark and hadoop
我尝试在 YARN 之上设置并运行 一个 Spark 集群运行并使用 HDFS。
我首先使用 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 库。所以我将火花罐添加到类路径中:
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 个月该领域没有任何变化。
我尝试在 YARN 之上设置并运行 一个 Spark 集群运行并使用 HDFS。
我首先使用 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 库。所以我将火花罐添加到类路径中:
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 个月该领域没有任何变化。