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


1、簡介

  最近在摸索利用sparkstreaming從kafka中准實時的讀取數據,並將在讀取的過程中,可以做一個簡單的分析,最后將分析結果寫入hbase中。

2、出現的問題

(1)將從kafka中讀取數據的程序打包到服務器上運行,發現需要用kafka相關的包,因此采用assembly的方法打包即可。

(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包。

分析原因:這個對應jar是一個htrace-core-3.1.0-incubating.jar 的jar包。本以為只需要在pom文件中添加對應的依賴項即可。但是我嘗試的結果還是報同樣的錯誤。

解決的方法:

  既然還是報同樣的錯誤,於是就執行在執行命令的時候,通過命令行參數的形式指定對應的jar包的路徑即可。最后運行的命令如下所示:

 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.jar

同樣也可以在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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM