2015-11-18 64 views
0

我剛剛開始嘗試使用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

任何有識之士在這?

+0

正如對任何遇到此問題的人的一個提示,我一直無法解決這個問題,但通過使用HBase 0.98.12運行Pig 0.15.0,能夠讓Pig和HBase一起工作。 –

回答

0

我遇到同樣的問題。我一直在豬主目錄上看一看豬圖書館,看來在實際版本中它們只包含hbase 0.98的連接器。這就是爲什麼你應該註冊HBase庫。

/豬/ LIB/H2 $ LS 阿夫羅-mapred-1.7.5-hadoop2.jar HBase的 - 協議 - 0.98.12-hadoop2.jar TEZ-MapReduce的0.7.0.jar 公地collections4-4.0 .jar hbase-server-0.98.12-hadoop2.jar tez-runtime-internals-0.7.0.jar hbase-client-0.98.12-hadoop2.jar hive-shims-0.23-0.14.0.jar tez-runtime -library-0.7.0.jar hbase-common-0.98.12-hadoop2.jar tez-api-0.7.0.jar tez-yarn-timeline-history-with-acls-0.7.0.jar hbase-hadoop2 -compat-0.98.12-hadoop2.jar tez-common-0.7.0.jar hbase-hadoop-compat-0.98.12-hadoop2.jar tez-dag-0.7.0.jar

無論如何我是有同樣的問題。我也試圖在豬0看到。15個文檔,

https://pig.apache.org/docs/r0.15.0/api/org/apache/pig/backend/hadoop/hbase/HBaseStorage.html

但似乎該方法是正確的。

喬希,你終於解決了嗎?

+0

好的。看起來我們必須編譯Pig0.15與HBase 1.1.2的兼容性https://issues.apache.org/jira/browse/PIG-4728 – David

相關問題