2015-06-25 51 views
1

我想從命令行使用spark-submit代替run-example運行Spark示例代碼HBaseTest,在這種情況下,我可以學習更多如何運行一般的spark代碼。spark-submit沒有找到類 - htrace

但是,它告訴我關於htrace的CLASS_NOT_FOUND,因爲我使用的是CDH5.4。我成功找到了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核-3.0.4.jar,HTRACE核-3.1.0-incubating.jar,HTRACE-core.jar添加都設下「的/ opt/Cloudera公司/包裹/ CDH -5.4.2-1.cdh5.4.2.p0.2/LIB/HBase的/ LIB /」。

回答

0

這是因爲Spark是無法找到HBase的罐子或類。對於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。你可以去:)