簡體   English   中英

使用Pig從HBase加載數據時出錯

[英]Error when loading data from HBase using Pig

我剛剛開始嘗試使用Hadoop / HBase / Pig,所以我真的很陌生,但是我似乎找不到關於我遇到的問題的直接信息,而且我絕對會陷入困境。

我正在嘗試使用Pig從HBase加載數據,但出現錯誤:

Pig腳本無法驗證:java.lang.RuntimeException:無法使用參數[[info:*]]實例化'org.apache.pig.backend.hadoop.hbase.HBaseStorage'

當此代碼運行時:

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

我發現可能會發生此錯誤,因為Pig使用的HBase罐是另一個版本。 我在/ pig / lib / h2文件夾中查看,發現有用於0.98.12的HBase jar,但是我安裝了1.1.2。 在這種情況下,是否只將Pig文件夾中的文件替換為HBase文件夾中的文件?

我試圖將.bashrc中的HBASE_HOME路徑更改為Pig文件夾,當我運行腳本時,它似乎已作為MapReduce作業提交,但由於錯誤而失敗:

ClassNotFoundException:org.apache.htrace.Trace

有什么見解嗎?

我有同樣的問題。 我一直在看過Pig Home目錄中的Pig庫,似乎在實際發行版中,它們僅包含hbase 0.98的連接器。 這就是為什么您應該注冊HBase庫的原因。

/ pig / lib / h2 $ ls avro-mapred-1.7.5-hadoop2.jar hbase-protocol-0.98.12-hadoop2.jar tez-mapreduce-0.7.0.jar commons-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

但似乎該方法是正確的。

喬希,您終於解決了嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM