【问题标题】:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession线程“主”java.lang.NoClassDefFoundError 中的异常:org/apache/spark/sql/SparkSession
【发布时间】:2018-08-09 01:41:23
【问题描述】:

当我使用下面的命令时:

spark-submit --master spark://hadoop01:7077 --class org.apache.spark.examples.SparkPi 
/data/spark-2.2.0-binhadoop2.7/examples/jars/spark-examples_2.11-2.2.0.jar 

错误发生了。

线程“主”java.lang.NoClassDefFoundError 中的异常: org/apache/spark/sql/SparkSession

我的 Hadoop 环境是 hdp 2.4.0.0-169。我该如何解决这个错误?

【问题讨论】:

  • ~/.bash_profile: export PYTHON_HOME=/home/spark/anaconda3 export PYSPARK_PYTHON=$PYTHON_HOME/bin/python export PYSPARK_DRIVER_PYTHON=$PYSPARK_PYTHON export PYSPARK_PYTHONPATH_SET=1 export SCALA_HOME=/data/scala-2.11。 8 导出 SPARK_HOME=/data/spark-2.2.0-bin-hadoop2.7 导出 HDP_VERSION=2.4.0.0-169 导出 HADOOP_HOME=/usr/hdp/current/hadoop-client 导出 PATH=$PATH:$PYTHON_HOME/bin/导出 PATH=$PATH:$SPARK_HOME/bin 导出 PATH=$PATH:$SCALA_HOME/bin
  • spark-env.sh:export JAVA_HOME=/data/jdk1.8.0_111 export SCALA_HOME=/data/scala-2.11.8 export HADOOP_HOME=/usr/hdp/current/hadoop-client export SPARK_MASTER_HOST =idanluexactdata51 export SPARK_LAUNCH_WITH_SCALA=0 export SPARK_LIBRARY_PATH=/data/spark-2.2.0-bin-hadoop2.7/jars export SCALA_LIBRARY_PATH=/data/scala-2.11.8/lib export SPARK_MASTER_WEBUI_PORT=18080 export SPARK_LIBRARY_PATH=$SPARK_LIBRARY_PATH:/ /hdp/current/hadoop-client/lib/native export SPARK_CONF_DIR=/data/spark-2.2.0-bin-hadoop2.7/conf export HADOOP_CONF_DIR=/usr/hdp/current/hadoop-client/conf
  • 如果我把hdp文件夹名改成2.4.0.0,并且把HDP_VERSION=2.4.0.0改成问题解决了,但是我不能改文件夹名。有其他办法解决有问题吗?谢谢。
  • 您是否尝试过使用export HDP_VERSION="2.4.0.0-169" 之类的引号导出?

标签: apache-spark


【解决方案1】:

你的 jar 路径缺少一个“-”

/data/spark-2.2.0-binhadoop2.7/examples/jars/spark-examples_2.11-2.2.0.jar

应该是

/data/spark-2.2.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.2.0.jar

除非这是您提交的拼写错误。如果提交时出现拼写错误,请以正确的格式发布完整的输入和错误。

【讨论】:

  • 我是菜鸟,谢谢你的帮助。
  • 我在 /data/spark-2.2.0-bin-hadoop2.7/jars 的 spark-sql_2.11-2.2.0.jar 中找到了 org/apache/spark/sql/SparkSession .所以我想我没有把 spark_class_path 放在环境中。
  • 但我已经在 spark-env.sh 中写了“export SPARK_LIBRARY_PATH=/data/spark-2.2.0-bin-hadoop2.7/jars”。所以我不明白为什么会出错发生
  • 上帝保佑我,我解决了这个问题。我服务器中的 spark 有两个版本。我使用 spark1.6.0 的 spark-submit。所以我 cd spark2.2.0 的 bin,然后执行。 /spark-submit,问题解决了。
  • 抱歉,我无法提供更多帮助。很高兴你知道了!
猜你喜欢
  • 2020-08-01
  • 2017-01-30
  • 1970-01-01
  • 2017-11-22
  • 1970-01-01
  • 2021-07-22
  • 2017-03-24
  • 2016-04-24
相关资源
最近更新 更多