我有運行一個簡單的豬腳本中使用HBaseStorage如何在運行Apache Pig腳本時查找jar依賴關係?
我曾經遇到過的錯誤將數據導入到HBase的一些困難是由下式給出:
Caused by: <file demo.pig, line 14, column 0> pig script failed to validate: java.lang.RuntimeException: could not instantiate 'org.apache.pig.backend.hadoop.hbase.HBaseStorage' with arguments '[rdf:predicate rdf:object]'
Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.hbase.client.Scan.setCacheBlocks(Z)V
at org.apache.pig.backend.hadoop.hbase.HBaseStorage.initScan(HBaseStorage.java:427)
at org.apache.pig.backend.hadoop.hbase.HBaseStorage.<init>(HBaseStorage.java:368)
at org.apache.pig.backend.hadoop.hbase.HBaseStorage.<init>(HBaseStorage.java:239) 13_21.51.28.tar.gz
... 29 more
根據其他問題和線程,主要反應/回答這個問題的方法是註冊HBaseStorage參考所需的適當的罐子。我被難住的是我如何確定給出適當的豬功能所需的JAR。
我甚至試圖打開hbase和pig文件夾下的各種jar文件,以確保在豬腳本中註冊了相應的類。
例如,由於java.lang.NoSuchMethodError
通過org.apache.hadoop.hbase.client.Scan.setCacheBlocks(Z)V
引起我特別導入包含org.apache.hadoop.hbase.client.Scan
,無濟於事罐子。
豬的文檔沒有提供任何明顯的鏈接和幫助,我可以參考。
我使用的是Hadoop 2.7.0,HBase 1.0.1.1,Pig 0.15.0。
如果您需要任何其他澄清,請隨時再次問我。如果有人能幫我解決這個問題,我會非常感激。
另外,從頭開始安裝Hadoop和相關軟件會更好嗎,還是直接獲取其中一個Hadoop包可以更好?
你解決了這個問題嗎?將hbase從0.98.3升級到1.0.1.1後遇到同樣的問題。 – Jacky