如何将hbase数据导入hive

    技术2022-07-11  93

    直接上做法。 先查看要导的表:

    hbase(main):001:0> list TABLE mydemo:mytest mydemo:scores mydemo:userinfo t1 tbl_user test1 6 row(s) in 0.2890 seconds => ["mydemo:mytest", "mydemo:scores", "mydemo:userinfo", "t1", "tbl_user", "test1"] hbase(main):002:0> scan 'mydemo:userinfo' ROW COLUMN+CELL 1 column=base:stuno, timestamp=1592986773309, value=\x00\x00\x00\x00\x00\x00\x0 0\x01 1 column=base:username, timestamp=1592983315179, value=zhangsan 1 column=external:likes, timestamp=1592983337974, value=player,eat 2 column=base:age, timestamp=1592983352939, value=30 2 column=base:username, timestamp=1592983346576, value=lisi 3 column=base:username, timestamp=1592986581168, value=zhangsanfeng 3 row(s) in 0.1880 seconds

    然后去映射:

    create external table myhbtb( kw string, //这是取得key 随便取名字 高兴你可以叫sb stuno string, //注意修饰符要按照顺序写 username string, age string, likes string ) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties ("hbase.columns.mapping"=":key,base:stuno,base:username,base:age,external:likes") // 此处一定要严格按照 列蔟:修饰符 的格式写, 并且顺序一定要个你的hbase表顺序一样不能变 tblproperties("hbase.table.name"="mydemo:userinfo"); //这是什么就不用我多说了8 库名:表名

    看结果:

    hive> select * from myhbtb; OK 1 zhangsan NULL player,eat 2 NULL lisi 30 NULL 3 NULL zhangsanfeng NULL NULL Time taken: 0.165 seconds, Fetched: 3 row(s)
    Processed: 0.013, SQL: 9