2016-11-15 36 views
0

我想表有兩個列族移動HBase的成蜂巢表。我可以移動一列家庭,但我怎樣才能移動另一個在同一個蜂巢表中。導入多個列族蜂巢

編輯:

我搬到一個列族ushing下面的代碼。

CREATE TABLE hbase_hive(key string, firstname string, age string) 
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’ 
WITH SERDEPROPERTIES (「hbase.columns.mapping」 = 「id:firstname,id:age") 
TBLPROPERTIES(「hbase.table.name」 = 「hl」); 

,但我有一個以上的系列列名hb,並具有三列。如何實現這一點。

更新:

我也嘗試添加下面的不同列族的列名是我的代碼。

CREATE TABLE hbase_hive(key string, firstname string, age string, testname string) 
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’ 
WITH SERDEPROPERTIES (「hbase.columns.mapping」 = 「id:firstname,id:age,pd:name") 
TBLPROPERTIES(「hbase.table.name」 = 「hl」); 

但我得到如下結果:

819215975 19391121 625678921720 NULL 
819617215 19570622 625116365890 NULL 
820333876 19640303 623221670810 NULL 
824794938 19531211 625278010070 NULL 
828093442 19420803 625284904860 NULL 
828905771 19320209 625078004220 NULL 
829832017 19630722 625178010070 NULL 

不是值我得到空的。

更新:

我試着在HBase的外殼使用下面的命令創建HBase的表

create ‘hl’,’id’ 

然後我用下面的命令

alter ‘hl’,’pd’ 
+0

它更容易,如果你表現出一些示例代碼或你如何實現移動第一CF – Gevorg

+0

@Gevorg我已經更新了我題。請檢查。 – animal

回答

0

在你HiveQL創造一個更加列族,您從hbase表「hl」的列族「id」中選擇兩列到配置單元表中。如果您想添加更多列(即使是來自其他列族),您只需將它們添加到表架構和hbase.columns.mapping即可。例如:

CREATE TABLE hbase_hive(key string, firstname string, age string, a string) 
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’ 
WITH SERDEPROPERTIES (「hbase.columns.mapping」 = 「id:firstname,id:age,hb:a") 
TBLPROPERTIES(「hbase.table.name」 = 「hl」); 

看到https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration#HBaseIntegration-MultipleColumnsandFamilies

+0

我試過這個,但來自不同列家族的其他列僅顯示NULL值,但在hbase中我可以看到該列中有數據。 – animal

+0

@animal你確定'hb'是一個列族,存儲在'hl'表中嗎?你能否提供更多的信息,比如'describe「的輸出hl」 – locoyou

+0

根據你的信息無法知道什麼是錯的。我想知道如何將數據存儲在hbase中。 – locoyou

0

我看到一對夫婦的問題(或多或少嚴重)你寫什麼:

  • 首先,我將創建一個EXTERNAL TABLE代替
  • 您正在創建只有3列的Hive表,但最終預期爲4
  • 您沒有明確映射:key
  • '您的姓氏'和'年齡'的數據看起來像野生隨機數字! :|

我無法測試,但下面應該是一個更好的起點:

CREATE EXTERNAL TABLE hbase_hive_hl(key string, firstname string, age string, name string) 
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’ 
WITH SERDEPROPERTIES (「hbase.columns.mapping」 = 「:key,id:firstname,id:age,pd:name") 
TBLPROPERTIES(「hbase.table.name」 = 「hl」); 
+0

我試過這種方式,但是我得到了最後的coloumn值,因爲'Null' – animal

+0

您是否嘗試過?請注意,它與您在問題中寫下的內容不同。如果是這樣,那麼請使用用於創建HBase表的腳本和用於生成示例輸出的確切查詢更新您的問題。另外,請務必在嘗試其他東西之前刪除現有的hbase_hive表格 – Gevorg

+0

我已更新我的問題,請檢查。 – animal