java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch. ()V from 解決


  在用spark的yarn-cluster模式跑fpgrowth進行頻繁項集挖掘的時候,報如下錯誤:

     

ERROR yarn.ApplicationMaster: User class threw exception: java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.mapred.FileInputFormat
java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.mapred.FileInputFormat
	at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:312)
	at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:199) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:248)
	at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:246)

問題解決過程:

         1、進行lib目錄,發現有多個guava版本
         2、修改pom,刪除guava依賴,運行,還是報錯

          3、pom中spark相關jar包都是使用的provide模式,怎么會報錯了,納悶。
          4、看下集群中hadoop使用的是hadoop-2.6.0-cdh5.7.0,跟進去代碼,FileInputFormat中的Stopwatch已經進行了封裝,沒有使用guava了,這是怎么個情況?
          5、最后最后。。。。

              spark的配置文件里面有這個配置項

           spark.yarn.jars      hdfs://xxxxxx/spark/share/jars/*.jar

       進入hdfs目錄一看,果然里面有相關的hadoop  jar包,刪掉這些jar包,在試,ok了。

 

 


免責聲明!

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



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