SparkStreaming運行出現 java.lang.NoClassDefFoundError: org/apache/htrace/Trace 錯誤

一、簡介java

  最近在摸索利用sparkstreaming從kafka中準實時的讀取數據,並將在讀取的過程當中,能夠作一個簡單的分析,最後將分析結果寫入hbase中。apache

二、出現的問題服務器

(1)將從kafka中讀取數據的程序打包到服務器上運行,發現須要用kafka相關的包,所以採用assembly的方法打包便可。spa

(2)運行 spark-submit  --class "com.yiban.datacenter.MyDataCollection.KafkaToHbase" --master local MyDataCollection-0.0.1-SNAPSHOT-jar-with-dependencies.jar出現以下錯誤:命令行

 java.lang.NoClassDefFoundError: org/apache/htrace/Trace   這個錯誤很明顯是因爲沒法加載對應的類,也就是沒有添加相應的jar包。 ci

分析緣由:這個對應jar是一個htrace-core-3.1.0-incubating.jar 的jar包。本覺得只須要在pom文件中添加對應的依賴項便可。可是我嘗試的結果仍是報一樣的錯誤。kafka

解決的方法:it

  既然仍是報一樣的錯誤,因而就執行在執行命令的時候,經過命令行參數的形式指定對應的jar包的路徑便可。最後運行的命令以下所示:spark

 spark-submit   --class "com.yiban.datacenter.MyDataCollection.KafkaToHbase  --master local   --driver-class-path  /opt/cloudera/parcels/CDH-5.4.4-1.cdh5.4.4.p0.4/jars/htrace-core-3.1.0-incubating.jar  --conf  spark.executor.extraClassPath=/opt/cloudera/parcels/CDH-5.4.4-1.cdh5.4.4.p0.4/jars/htrace-core-3.1.0-incubating.jar    MyDataCollection-0.0.1-SNAPSHOT-jar-with-dependencies.jario

一樣也能夠在yarn-cluster模式下運行:

 spark-submit   --class "com.yiban.datacenter.MyDataCollection.KafkaToHbase  --master  yarn-cluster  --driver-class-path  /opt/cloudera/parcels/CDH-5.4.4-1.cdh5.4.4.p0.4/jars/htrace-core-3.1.0-incubating.jar  --conf  spark.executor.extraClassPath=/opt/cloudera/parcels/CDH-5.4.4-1.cdh5.4.4.p0.4/jars/htrace-core-3.1.0-incubating.jar    MyDataCollection-0.0.1-SNAPSHOT-jar-with-dependencies.jar

相關文章
相關標籤/搜索