關於在本地idea當中提交spark代碼到遠程的錯誤總結(第三篇)


因為我們是在idea當中對hive的數據通過spark sql的形式進行處理的嘛,所以需要加載hive的表以及hive的數據,但是在加載的時候報錯;報錯信息如下;

 java.lang.NoClassDefFoundError: Lorg/apache/hadoop/hive/ql/plan/TableDesc

看到這里第一反應就是hive的相關包的沒有加載了,於是我將他配置在yarn-site.xml的yarn.application.classpath當中。發現同樣的問題還是會出現。在網上找的方法也是這樣的,沒辦法只能在sparkcontext初始化的時候,實現對其進行配置了

配置如下

SparkConf conf = new SparkConf().setAppName("spark-onyarn-test").setMaster("yarn-client")
                .set("yarn.resourcemanager.hostname", "vm250-240")
                .set("spark.yarn.preserve.staging.files","false")
                .set("spark.executor.extraClassPath"," /opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/hive/lib/*") //這個就是hive的lib包下的所有的包信息。加載進去就可以了。數據完美輸出。
                .set("spark.yarn.jar", "hdfs://vm250-240:8020/user/root/spark-assembly-1.6.0-cdh5.14.0-hadoop2.6.0-cdh5.14.0.jar") //這里是spark的依賴的包。我們把這個包上傳到hdfs上實現數據文件的共享,不用每次都去加載上傳,表現如下

 

 


免責聲明!

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



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