HDFS、Datanode、namenode、および hbase を構成しました。CDR csv ファイルを HDFS に保存しました。では、どうすればそれを Hbase にマップして、処理できるように準備できるのでしょうか?
1 に答える
0
このimporttsv
ツールを使用して、CSV ファイルを HBase に一括読み込みできます。これを行う方法に関する適切なチュートリアルは次のとおりです。
ブログ記事の要約は次のとおりです。
まず、テーブルを作成します。
hbase shell
create 'cdr', {NAME => 'f'}, {SPLITS => ['g', 'm', 'r', 'w']}
NAME は、列ファミリーの名前を指定します。Splits は presplitting であるため、少し高速です。これが CDR で、ROWKEY が電話番号などになる場合は、文字ではなく数字で分割する必要があります。実際にデータをチャンクに分割する分割を選択したいだけです。
次に、importtsv を使用して、cdr データ cdr.csv からデータをロードします。
hadoop jar /usr/lib/hbase/hbase-xxx.jar importtsv
-Dimporttsv.separator=,
-Dimporttsv.bulk.output=output
-Dimporttsv.columns=HBASE_ROW_KEY,f:col2,f:col3,f:col4,... cdr cdr.csv
次に、それを完了するには:
hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles output wordcount
注: 行キーが何であるかを考える必要があります。最初の列を選択することは、おそらく正しい選択ではありません。HBase はリレーショナル データベースではないことに注意してください。HBase で意味のあることを行います。
于 2014-07-23T18:01:39.687 に答える