Hbase外部数据集导入

1.加数据集上传到hdfs中

1.1上传数据到系统

在这里插入图片描述

1.2将数据上传到hdfs中

hdfs dfs -put /root/temp/tb_import.csv   /csvFiles

如果没有文件夹则先创建文件夹

hdfs dfs -mkdir -p /csvFiles

2.加csv数据转换为hfile

hbase  org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=,  -Dimporttsv.columns='HBASE_ROW_KEY,cf:brand,cf:price'   -Dimporttsv.bulk.output=/csvFiles/out/   pc_info   /csvFiles 

在这里插入图片描述

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv
-Dimporttsv.separator=,
-Dimporttsv.columns=‘HBASE_ROW_KEY,cf:brand,cf:price’
-Dimporttsv.bulk.output=/root/temp/out/ --输出路径 pc_info --hbase中将用创建的表名 /root/temp --csv数据集输入路径

3.加hfile添加到hbse中

hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /csvFiles/out/ pc_info

hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles
/csvFiles/out/ - - 上面步骤的输出路径,即csv转换为hfile的hfile文件路径 pc_info
pc_info - - 表名

nullPointException

4.原理说明和补充

因为hbase的数据存储是利用hdfs来进行存储的,所以对可以进行批量处理的数据我们就可以直接一部到位(省去其中的rpc请求,能减少网络开销,极大的提高了性能和效率),将待数据集直接处理成hflie格式的数据,然后加载到hbse中。
其原理就是使用mapReduce程序对指定位置的csv文件进行处理成hfile文件然后输出到指定目录,再利用hbase中的加载工具加载到hdfs中

说明补充:

-Dimporttsv.skip.bad.lines=false - 若遇到无效行则失败
-Dimporttsv.separator=, - 使用特定分隔符,默认是tab也就是\t
-Dimporttsv.timestamp=currentTimeAsLong - 使用导入时的时间戳
-Dimporttsv.mapper.class=my.Mapper - 使用用户自定义Mapper类替换TsvImporterMapper
-Dmapreduce.job.name=jobName - 对导入使用特定mapreduce作业名
-Dcreate.table=no - 避免创建表,注:如设为为no,目标表必须存在于HBase中
-Dno.strict=true - 忽略HBase表列族检查。默认为false
-Dimporttsv.bulk.output=/user/yarn/output 作业的输出目录

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值