maven工程中連接hbase時“org.apache.hadoop.hbase.DoNotRetryIOException...”的解決


最近的一個maven工程中,需要連接hbase。由於服務器端的運行環境是hbase 1.2.5和hadoop 2.7.3,所以想當然地在pom.xml里加入相同版本的jar依賴:

<project ...>
   ...
   <dependencies>
      <dependency>
         <groupId>org.apache.hbase</groupId>
         <artifactId>hbase-client</artifactId>
         <version>1.2.5</version>
      </dependency>
      <dependency>
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-hdfs</artifactId>
         <version>2.7.3</version>
      </dependency>
      ...
   </dependencies>
</project>

然而,運行時卻報錯:

org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.hbase.zookeeper.MetaTableLocator

百度和谷歌的結果都說是因為guava包沖突,從pom的依賴層次看也確實如此。但按搜索結果嘗試多種解決方案,問題依舊。

后來參考其它工程,將hbase-client的版本改為1.3.0,居然就錯誤消失、一路暢通地過了!

知其然而不知其所以然,我也不清楚具體原因為何,煩請明白人告訴原因,謝謝!


免責聲明!

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



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