把MYSQL中的数据导入到hbase中,采用HBASE自带的BULK加载工具完成。过程分三步:
1.从mysql中导出数据为CSV或TSV格式的文本文件
2.利用importtsv工具转换Tsv文件为hbase的数据文件格式HFILE
3.利用completeulkload加载上一步生成的hbase数据文件
具体步骤:
1.导数据:
select concat(model,'_',pkg_name,'_',meid),meid,model,pkg_name,label,install_type,genera_type,specific_type into outfile '/home/zx/d02.txt' fields terminated by '\t' lines terminated by '\n' from tb_yl_device_app_info_5230 ;
2.文件转换
hbase org.apache.hadoop.hbase.mapreduce.Driver importtsv -Dimporttsv.columns=HBASE_ROW_KEY,cf:meid,cf:model,cf:pkg_name,cf:label,cf:install_type,cf:genera_type,cf:specific_type -Dimporttsv.bulk.output=/user/hadoop/mysqldata/ tb_yl_device_app_info1 /home/hadoop/device_app/zx/
3.加载hbase
hbase org.apache.hadoop.hbase.mapreduce.Driver completebulkload /user/hadoop/mysqldata/ tb_yl_device_app_info1
注意:
在执行第二步的时候可能会报错java.lang.NoClassDefFoundError: com/google/common/collect/Multimap,
只需要将guava-11.0.2.jar考到hadoop的lib目录下就OK,附件是这个jar
1.从mysql中导出数据为CSV或TSV格式的文本文件
2.利用importtsv工具转换Tsv文件为hbase的数据文件格式HFILE
3.利用completeulkload加载上一步生成的hbase数据文件
具体步骤:
1.导数据:
select concat(model,'_',pkg_name,'_',meid),meid,model,pkg_name,label,install_type,genera_type,specific_type into outfile '/home/zx/d02.txt' fields terminated by '\t' lines terminated by '\n' from tb_yl_device_app_info_5230 ;
2.文件转换
hbase org.apache.hadoop.hbase.mapreduce.Driver importtsv -Dimporttsv.columns=HBASE_ROW_KEY,cf:meid,cf:model,cf:pkg_name,cf:label,cf:install_type,cf:genera_type,cf:specific_type -Dimporttsv.bulk.output=/user/hadoop/mysqldata/ tb_yl_device_app_info1 /home/hadoop/device_app/zx/
3.加载hbase
hbase org.apache.hadoop.hbase.mapreduce.Driver completebulkload /user/hadoop/mysqldata/ tb_yl_device_app_info1
注意:
在执行第二步的时候可能会报错java.lang.NoClassDefFoundError: com/google/common/collect/Multimap,
只需要将guava-11.0.2.jar考到hadoop的lib目录下就OK,附件是这个jar