我尝试设置并运行在YARN上运行并使用HDFS的Spark集群。
我首先使用hadoop-3.1.0为HDFS设置Hadoop。 然后我配置了YARN并启动了两个。 我能够将数据上传到HDFS,纱线似乎也能正常工作。
然后我只在我的主人身上安装了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-libraries。所以我将火花罐添加到类路径中:
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库来提交任何内容,所以我不知道如何解决这个问题。
答案 0 :(得分:2)
How is Hadoop-3.0.0 's compatibility with older versions of Hive, Pig, Sqoop and Spark
来自@JacekLaskowski的回答是hadoop 3不支持火花。据我所知,该区域过去6个月没有任何变化。