spark-submit 找不到类 - htrace

Posted

技术标签:

【中文标题】spark-submit 找不到类 - htrace【英文标题】:spark-submit no class found - htrace 【发布时间】:2015-06-25 16:16:09 【问题描述】:

我正在尝试使用 spark-submit 而不是 run-example 从命令行运行 Spark 示例代码 HBaseTest,在这种情况下,我可以了解更多如何运行 spark 代码的一般信息。

但是,它告诉我关于 htrace 的 CLASS_NOT_FOUND,因为我使用的是 CDH5.4。我成功找到了 htrace jar 文件,但我很难将它添加到路径中。

这是我拥有的最后一个 spark-submit 命令,但仍然有 class not found 错误。谁能帮我这个?

#!/bin/bash
export SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark

/bin/bash $SPARK_HOME/bin/spark-submit \
--master yarn-client \
--class org.apache.spark.examples.HBaseTest \
--driver-class-path /etc/hbase/conf:$SPARK_HOME/examples/lib/*.jar:/opt/cloudera/parcels/CDH-5.4.2-1.cdh5.4.2.p0.2/lib/hbase/lib/*.jar \
--jars $SPARK_HOME/examples/lib/*.jar:/opt/cloudera/parcels/CDH-5.4.2-1.cdh5.4.2.p0.2/lib/hbase/lib/*.jar \
$SPARK_HOME/examples/lib/*.jar \
myhbasetablename

注意: htrace-core-3.0.4.jar、htrace-core-3.1.0-incubating.jar、htrace-core.jar都位于'/opt/cloudera/parcels/CDH-5.4.2-1.cdh5.4.2下.p0.2/lib/hbase/lib/'。

【问题讨论】:

【参考方案1】:

我打开了$SPARK_HOME/conf/classpath.txt,只是在文件末尾添加了/opt/cloudera/parcels/CDH/lib/hbase/lib/htrace-core-3.1.0-incubating.jar

https://community.cloudera.com/t5/Advanced-Analytics-Apache-Spark/ClassNotFoundException-org-apache-htrace-Trace-exception-in/m-p/29253/highlight/true#M915

【讨论】:

【参考方案2】:

这是因为 Spark 无法找到 HBase jar 或类。对于 Spark-HBase 集成,最好的方法是将 HBase 库添加到 Spark Classpath。

这可以使用$SPARK_HOME/bin 文件夹中的compute-classpath.sh 脚本来完成。

export CLASSPATH=$CLASSPATH:/path/to/HBase/lib/*

eg: export CLASSPATH=$CLASSPATH:/opt/cloudera/parcels/CDH/lib/hbase/lib/*

之后,重启 Spark。

你去吧:)

【讨论】:

以上是关于spark-submit 找不到类 - htrace的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spark-Submit 在 kubernetes 上安装 PySpark 软件包:找不到常春藤缓存文件错误

sbt打包Scala写的Spark程序,打包正常,提交运行时提示找不到对应的类

spark-submit 中的 scala.ScalaReflectionException

执行 spark-submit 时纱线/任何队列有啥用?

idea打包Spark 找不到主类

调用 lambda 函数时找不到模块