hbase结合hive和sqoop实现导数据到mysql

hive整合hbase表的两点好处:
   1.实现数据导入到MYSQL。
   2.实现hbase表转换为另外一张hbase表。



三个操作环节:
    1.hbase关联hive作为外部表:
CREATE EXTERNAL TABLE hive_device_app(row_key string,genera_type string,install_type string,label string,meid string,model string,pkg_name string,specific_type string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf:genera_type,cf:install_type,cf:label,cf:meid,cf:model,cf:pkg_name,cf:specific_type") 
TBLPROPERTIES("hbase.table.name" = "tb_yl_device_app_info1");


   2.hbase真正关联hive,hive的插入更新等操作直接影响hbase中的数据
 
CREATE  TABLE hbase_device_app(row_key string,genera_type string,install_type string,label string,meid string,model string,pkg_name string,specific_type string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf:genera_type,cf:install_type,cf:label,cf:meid,cf:model,cf:pkg_name,cf:specific_type") 
TBLPROPERTIES("hbase.table.name" = "tb_yl_device_app_info2");

  
   3.创建一张hive表
CREATE TABLE hive_device_app_real(row_key string,genera_type string,install_type string,label string,meid string,model string,pkg_name string,specific_type string) 


   4.外部表数据导入hive实表
   
insert overwrite table hive_device_app_real select * from hive_device_app 

    5.sqoop导出hive的数据到mysql
   
sqoop export --connect jdbc:mysql://Hadoop48/toplists -m 1 --table hive_device_app_real --export-dir /user/hive/warehouse/hive_device_app_real/000000_0 --input-null-string "\\\\N" --input-null-non-string "\\\\N" --input-fields-terminated-by "\\01" --input-lines-terminated-by "\\n"

   
   6.habse(关联hive)中一张表转到另外一张表当然可以利用hive的内置函数实现数据处理
  
insert overwrite table another_hive_hbase_related_table select * from hbase_device_app 



导出hbase中数据到mysql需要经过步骤:1345
hbase中一张表到另外一张表(中间可以利用hive内置函数做数据处理):226


猜你喜欢

转载自zhangxiong0301.iteye.com/blog/2107103