我正在尝试使用spark-submit而不是run-example从命令行运行Spark示例代码HBaseTest,在这种情况下,我可以了解更多如何运行spark代码。
然而,由于我使用CDH5.4,它告诉我CLASS_NOT_FOUND关于htrace。我成功找到了htrace jar文件,但我很难将其添加到路径中。
这是我的最终spark-submit命令,但仍然没有找到类错误。谁能帮我这个?
#!/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 /”。
答案 0 :(得分:1)
我打开了$SPARK_HOME/conf/classpath.txt
,只是将/opt/cloudera/parcels/CDH/lib/hbase/lib/htrace-core-3.1.0-incubating.jar
添加到文件的末尾。
答案 1 :(得分:0)
这是因为Spark无法找到HBase jar或类。对于Spark-HBase集成,最好的方法是将HBase库添加到Spark Classpath。
可以使用compute-classpath.sh
文件夹中的$SPARK_HOME/bin
脚本完成此操作。
export CLASSPATH=$CLASSPATH:/path/to/HBase/lib/*
eg: export CLASSPATH=$CLASSPATH:/opt/cloudera/parcels/CDH/lib/hbase/lib/*
在此之后,重启Spark。
你去:)