我剛剛開始嘗試使用Hadoop/HBase/Pig,所以我真的很新,但我似乎無法找到關於我遇到的問題的簡單信息我完全陷入困境。使用Pig從HBase加載數據時出錯
我試圖使用從豬HBase的加載數據,但我得到的錯誤:
Pig script failed to validate: java.lang.RuntimeException: could not instantiate 'org.apache.pig.backend.hadoop.hbase.HBaseStorage' with arguments '[info:*]'
運行此代碼時:
raw = LOAD 'hbase://testTable' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('info:*') as (id:int);
從我發現它可能是我沒有註冊一些jar或可能與HBase/Pig版本有關。以下是完整的腳本:
REGISTER /usr/local/hbase-1.1.2/lib/hbase-common-1.1.2.jar
REGISTER /usr/local/hbase-1.1.2/lib/hbase-client-1.1.2.jar
REGISTER /usr/local/hbase-1.1.2/lib/hbase-server-1.1.2.jar
REGISTER /usr/local/hbase-1.1.2/lib/hbase-protocol-1.1.2.jar
REGISTER /usr/local/hbase-1.1.2/lib/htrace-core-3.1.0-incubating.jar
REGISTER /usr/local/hbase-1.1.2/lib/zookeeper-3.4.6.jar
REGISTER /usr/local/hbase-1.1.2/lib/guava-12.0.1.jar
REGISTER /usr/local/hbase-1.1.2/lib/hbase-hadoop2-compat-1.1.2.jar
REGISTER /usr/local/hbase-1.1.2/lib/hbase-annotations-1.1.2.jar
REGISTER /usr/local/hbase-1.1.2/lib/hbase-thrift-1.1.2.jar
set hbase.zookeper.quorum 'localhost'
raw = LOAD 'hbase://testTable' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('info:*') as (id:int);
而且我使用的版本:
- 的Hadoop 2.5.1
- HBase的1.1.2
- 豬0.15.0
任何有關問題可能出現的地方以及我可以檢查的內容都將不勝感激!
更新
所以在我的.bashrc已在HBASE_HOME設置爲HBase的主文件夾爲:
export HBASE_HOME=/usr/local/hbase-1.1.2
我發現,因爲豬是用罐子的HBase可能會發生這個錯誤這是不同的版本。我查看了/ pig/lib/h2文件夾,發現有0.98.12的HBase jar,但是我安裝了1.1.2。在這種情況下,您是否將Pig文件夾中的文件替換爲HBase文件夾中的文件?
我試圖在.bashrc中更改爲豬文件夾HBASE_HOME路徑,當我跑的劇本似乎得到提交的MapReduce工作,但隨後因錯誤而失敗:
ClassNotFoundException: org.apache.htrace.Trace
任何有識之士在這?
正如對任何遇到此問題的人的一個提示,我一直無法解決這個問題,但通過使用HBase 0.98.12運行Pig 0.15.0,能夠讓Pig和HBase一起工作。 –