2012-04-05 13 views
2

HBaseのハイブで外部テーブルを作成することができました。可変カラムを持つ外部テーブルを作成する必要があります。これは、HBaseのカラムが特定のテーブル、列の数は、データの挿入時に動的に作成することができますどのような状況のような種類の処理のためのアプローチでなければなりません。hbaseの外部テーブルの作成方法

Summery:列の数がHBaseテーブルで固定されていない場合、ハイブで外部テーブルを作成する方法。

ありがとうございます。

+0

どのように機能すると思いますか? –

+1

私はここにも投稿し、必要に応じて他人を助ける解決策を得ました。 CREATE EXTERNAL TABLE shashwat(key int、value map ) > STORED BY 'org.apache.hadoop.hive.hbase。 "HBaseStorageHandler ' > SERDEPROPERTIES(" hbase.columns.mapping "=":key、demo: ") > TBLPROPERTIES(" hbase.table.name "=" hbase_shashwat "); – Infinity

答えて

5
  1. のHBaseに

    create 'hbase_2_hive_names', 'id', 'name', 'age'

  2. ロードデータシェルのHBaseのテーブルを作成し(入力ファイルがHDFSになければならない)

    export HADOOP_CLASSPATH=$(/usr/local/hbase/bin/hbase classpath);$HADOOP_HOME/bin/hadoop jar /usr/local/hbase/hbase-0.94.1.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY,id:id,name:fn,name:ln,age:age hbase_2_hive_names /var/data/samples/names.tsv

  3. ハイブに外部表を作成しますシェル

    CREATE EXTERNAL TABLE hbase_hive_names(hbid INT, id INT, fn STRING, ln STRING, age INT) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,id:id,name:fn,name:ln,age:age") TBLPROPERTIES("hbase.table.name" = "hbase_2_hive_names");

関連する問題