hadoopとhbase cdh3u2がインストールされています。 hadoopには、パス/home/file.txt
にファイルがあります。HDFSからHBaseへのデータインポート(cdh3u2)
one,1
two,2
three,3
このファイルをhbaseにインポートします。最初のフィールドはStringとして解析され、2番目のフィールドは整数として解析され、hbaseにプッシュされます。私はdvanceにこの
aThanksを行うために役立つ....
hadoopとhbase cdh3u2がインストールされています。 hadoopには、パス/home/file.txt
にファイルがあります。HDFSからHBaseへのデータインポート(cdh3u2)
one,1
two,2
three,3
このファイルをhbaseにインポートします。最初のフィールドはStringとして解析され、2番目のフィールドは整数として解析され、hbaseにプッシュされます。私はdvanceにこの
aThanksを行うために役立つ....
それは、シンプル、簡単、かつ柔軟性があるので、私はHBaseのにインジェストのためのApacheの豚を使用して好きです。
ここでは、テーブルと列ファミリを作成した後、あなたの仕事を行うPigスクリプトを示します。
$ hbase shell
> create 'mydata', 'mycf'
移動HDFSのファイル:テーブルとカラムファミリを作成するには、あなたがやる、そして、
$ hadoop fs -put /home/file.txt /user/surendhar/file.txt
をHBaseStorageを格納するための豚のスクリプトを記述(あなたは見ていること上記のスクリプトでは、鍵がstrdata
になるだろう
A = LOAD 'file.txt' USING PigStorage(',') as (strdata:chararray, intdata:long);
STORE A INTO 'hbase://mydata'
USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(
'mycf:intdata');
注こと:set up and run Pig方法まで)。何かから独自のキーを作成する場合は、FOREACHステートメントを使用してキーを生成します。 HBaseStorageは、前の関係(この場合はA::strdata
)の最初のものが鍵であると仮定します。
いくつかの他のオプションは次のようになります。
csvの行をシェルput
コマンドに変換する何らかのスクリプト(つまりsed、perl、python)を使用してhbaseシェルでデータをプッシュします。この場合も、レコードの数が少ない場合にのみ行う必要があります。
$ cat /home/file.txt | transform.pl
put 'mydata', 'one', 'mycf:intdata', '1'
put 'mydata', 'two', 'mycf:intdata', '2'
put 'mydata', 'three', 'mycf:intdata', '3'
$ cat /home/file.txt | transform.pl | hbase shell
ねえドナルド。あなたはこの投稿をチェックしていただけますか? http://stackoverflow.com/questions/21126483/how-to-have-pig-store-rows-in-hbase-as-text-and-not-bytes –
ドナルドあなたはこの答えを書くためのヒーローです! –
そのPIGスクリプトに必要なHBaseジャーを登録するのを忘れないでください。そのように "REGISTER /usr/lib/hbase/lib/*.jar;" – PinoSan
は何をあなたの鍵になりたいですか?それらを1つの列ファミリに、または2つの別々の列ファミリにプッシュしますか? –