Impala如何加載HBase資料?本文将為大家進行詳細介紹Impala加載HBase資料的步驟。
第一步:HBase建立表(或選擇已有表)
HBase shell指令行執行指令:
如圖所示:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DNwczNxYTM1ETNwQDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
第二步:HBase表存入資料
利用Java API往HBase寫入資料,示例代碼如下:
其中HBaseUtil的postBasic()方法為HBase Java API入庫操作,寫入的表為impala_hbase_test_table,rowkey為線程名加遞增數,列簇為f,寫入的列為dn、fn,值分别為列名加随機數。
第三步:Hive建立Database,并使用
在Hive Shell指令行,執行Database建立及使用指令,如下圖所示:
第四步:将HBase資料加載到Hive
在Hive Shell指令行執行如下指令:
如下圖所示:
其中,在WITH SERDEPROPERTIES選項中指定Hive外部表字段到HBase列的映射,其中“:key”對應于HBase中的rowkey,其餘的就是列簇f中的列名。最後在TBLPROPERTIES中指定了HBase中要進行映射的表名。
第五步:Impala與Hive進行中繼資料同步
在Impala Shell指令行,執行操作INVALIDATE METADATA;
第六步:Impala切換到與Hive相同的DataBase,進行資料驗證
相關指令如下圖所示:
1、Impala切換DataBase
2、Impala驗證資料
3、Hive驗證資料
最終,10000條資料在Hive與Impala中均能被查詢到,證明Impala加載HBase資料成功!
但是,這裡有個問題,我們發現,即便是僅有1萬條資料,Impala的count也比Hive的count耗時小的多,前者為1.28s,後者為81.055s,那麼是不是意味着Impala性能遠遠好于Hive呢?後續我會通過實際測試來探究這個疑問。