Illegal reflective access by org.apache.hadoop.security.authentication.util.KerberosUtil


在使用Java API操作HBase時拋出如下異常:

Illegal reflective access by org.apache.hadoop.security.authentication.util.KerberosUtil (file:/C:/Users/RYJ/.m2/repository/org/apache/hadoop/hadoop-auth/2.6.5/hadoop-auth-2.6.5.jar) to method sun.security.krb5.Config.getInstance()

這個異常足足困了我一天,剛開始懷疑是代碼問題,最終發現是版本不匹配導致的。

首先我們搭建HBase一定要考慮兼容性問題,即哪個版本的HBase可以和什么版本的JDK匹配,以及可以和什么版本的Hadoop匹配。 我上一篇博客還總結了呢,搭建的時候就忽略了,這也就是學了不知道怎么用吧!汗!  以后實踐的時候一定要學會聯系學的東西,這樣才會避免走很多彎路,不然有數不盡的坑,你就栽吧,時間不允許你這么做的。好了,接下來說解決方案。

解決方法:以前用的JDK8 ,發現不匹配,然后降級為JDK7 就好了。

具體降級步驟:

1.首先登陸JAVA官網下載JDK7到本地

  》》打開https://www.oracle.com/technetwork/java/javase/documentation/index.html

   

 》》可以看到有如下版本

  》》下載好后,右鍵項目->Build Path->Configure Build Path... 彈出如下內容,依次按照順序點擊

 》》Next

 

  》》點擊應用即可,然后重新運行,就發現錯誤終於消失了。。。


免責聲明!

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



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