0

ローカル マシンのテキスト ファイルをリモート Hbase にロードする方法。上記のコマンドを参照しましたが、コマンドと本当に混乱しています

hadoop jar <path to hbase jar> importtsv -Dimporttsv.columns=a,b,c '-Dimporttsv.separator=,' <tablename> <inputdir>  

テキスト ファイルのパスをアドレス指定する場所と、テーブル名と列はテキスト ファイルになります。テキストファイルには、作成ステートメントとプットステートメントがあり、そのファイルをHbaseシェルにロードして実行する方法があります。誰かがそれを知っているなら、私の混乱を打破してください.

スクリプト ファイル:

create 'blogpostss', 'post', 'image' 

Run in HBase shell the following to add some data:

put 'blogpostss', 'post1', 'post:title', 'Hello World'
put 'blogpostss', 'post1', 'post:author', 'The Author'
put 'blogpostss', 'post1', 'post:body', 'This is a blog post'
put 'blogpostss', 'post1', 'image:header', 'image1.jpg'
put 'blogpostss', 'post1', 'image:bodyimage', 'image2.jpg'

put 'blogpostss', 'post2', 'post:title', 'Another Post'
put 'blogpostss', 'post2', 'post:title', 'My Second Post'

put 'blogpostss', 'post1', 'post:body', 'This is an updated blog postss'

Following commands retrieve data:

get 'blogpostss', 'post1'
get 'blogpostss', 'post1', { COLUMN => 'post:title' }
get 'blogpostss', 'post1', { COLUMN => 'post:title', VERSIONS => 4 }
get 'blogpostss', 'post1', { COLUMNS => 'post:body', VERSIONS => 3 }

get 'blogpostss', 'post2'
get 'blogpostss', 'post2', { COLUMN => 'post:title' }
get 'blogpostss', 'post2', { COLUMN => 'post:title', VERSIONS => 4 }
4

2 に答える 2

1

1.ターミナルと ssh を使用して、目的の hbase 構成済み PC に接続します。
2.ローカル テキスト ファイルを HDFS にコピーします。
3. Hbase シェルを使用して、目的の列ファミリーを持つテーブルを作成します。
4. 挿入するコマンドを実行します。
hadoop jar <path to hbase jar> importtsv -Dimporttsv.columns=a,b,c '-Dimporttsv.separator=,' <tablename> <inputdir>
注:
hbase jar へのパス -> hbase jar が使用可能なパス。
tablename -> 今作成したテーブル名。
inputdir -> ファイル拡張子付きの完全修飾 Hdfs パス。
-Dimporttsv.columns=a,b,c -> column family:qualifer に言及する必要があります。

于 2012-08-24T05:42:40.553 に答える
0

これを試すことができます:

1) hbase マシンに ssh を実行します

2) そのファイルを以下のパスにコピーします。

/home/hbase/hbase-0.98.3-hadoop2/bin (it can be change according to where you have hbase folder)

3)[root@hostname bin]# ./hbase shell ./sample_commands.txt

于 2015-05-18T13:39:18.913 に答える