2017-05-15 12 views
1

豚スクリプトからhbaseリモートサーバからデータを読み書きしたい。我々はHortonworks HDP 2.5を使用しています。豚 - リモートhbaseサーバからのデータの読み込み/書き込み

以下はシナリオです。

2つのクラスタがあります.1つはHive用、もう1つはHbase用です。 Hiveクラスタの一部であるエッジノードにアクセスできます。

私たちのコード(MapReduceジョブ&ピッグスクリプト)は、Hiveクラスタで実行されます。

要件の一部として、Hbaseテーブルからもデータを読み書きする必要があります。

ネット上で1つの解決策が見つかりましたが、機能しません。 http://grokbase.com/t/cloudera/cdh-user/137at5cg72/pig-stores-into-remote-hbase

この解決策は、豚スクリプト内にhbaseサーバーのzookeeper quorumを登録することを提案します。しかし、構文は機能していません。

set hbase.zookeeper.quorum '108.168.251.xxx-static.reverse.softlayer.com<http://108.168.251.xxx-static.reverse.softlayer.com:8020/hbase>' 

... 

STORE raw_rec INTO 'hbase://my_table<http://108.168.251.xxx-static.reverse.softlayer.com:8020/hbase>' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('score:val'); 

しかし、これは機能しません。 英数字のみの名前空間に許可されているように、エラーを取得(<>許可されていない署名)

すると、デフォルトのorg.apache.pigを使って豚の内側リモートHBaseのクラスタからのデータのリード/ライトをするためにどのような方法がある場合はお知らせください.backend.hadoop.hbase.hbasestorage

ありがとうございました!!!

答えて

0

ブタがインストールされているクライアントマシンでは、以下のように設定してください。 2181がzk毛管ポートであると仮定します。 my_tableにローカルクラスタのHBaseの中に存在しているかのように、:

export PIG_OPTS="$PIG_OPTS -Dhbase.zookeeper.property.clientPort=2181 -Dhbase.zookeeper.quorum=108.168.251.xxx-static.reverse.softlayer.com" 

そして、「// HBaseの」せずに直接テーブル名を使用します。

STORE raw_rec INTO 'my_table' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('score:val'); 
関連する問題