天天看點

Impala之加載HBase資料

        Impala如何加載HBase資料?本文将為大家進行詳細介紹Impala加載HBase資料的步驟。

        第一步:HBase建立表(或選擇已有表)

        HBase shell指令行執行指令:

        如圖所示:

Impala之加載HBase資料

        第二步:HBase表存入資料

        利用Java API往HBase寫入資料,示例代碼如下:

        其中HBaseUtil的postBasic()方法為HBase Java API入庫操作,寫入的表為impala_hbase_test_table,rowkey為線程名加遞增數,列簇為f,寫入的列為dn、fn,值分别為列名加随機數。

        第三步:Hive建立Database,并使用

        在Hive Shell指令行,執行Database建立及使用指令,如下圖所示:

Impala之加載HBase資料

        第四步:将HBase資料加載到Hive

        在Hive Shell指令行執行如下指令:

        如下圖所示:

Impala之加載HBase資料

        其中,在WITH SERDEPROPERTIES選項中指定Hive外部表字段到HBase列的映射,其中“:key”對應于HBase中的rowkey,其餘的就是列簇f中的列名。最後在TBLPROPERTIES中指定了HBase中要進行映射的表名。

        第五步:Impala與Hive進行中繼資料同步

        在Impala Shell指令行,執行操作INVALIDATE METADATA;

Impala之加載HBase資料

        第六步:Impala切換到與Hive相同的DataBase,進行資料驗證

        相關指令如下圖所示:

        1、Impala切換DataBase

Impala之加載HBase資料

        2、Impala驗證資料

Impala之加載HBase資料

        3、Hive驗證資料

Impala之加載HBase資料

        最終,10000條資料在Hive與Impala中均能被查詢到,證明Impala加載HBase資料成功!

        但是,這裡有個問題,我們發現,即便是僅有1萬條資料,Impala的count也比Hive的count耗時小的多,前者為1.28s,後者為81.055s,那麼是不是意味着Impala性能遠遠好于Hive呢?後續我會通過實際測試來探究這個疑問。