Hbase批量数据导入与导出

一、数据导入

1、上传文件夹到hdfs上

  • hadoop fs -mkdir /user/hduser/music1  #在hdfs上创建文件夹
  • hadoop fs -put music1.txt music2.txt /user/hduser/music1 #从hdfs中传送文件到本地路径下

2、Hbase批量csv数据导入

  • hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=tmp -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:singer,info:gender,info:ryghme,info:terminal music /user/hduser/music1 #Dimporttsv.columns为对应的列名
  • hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=',' -Dimporttsv.columns=HBASE_ROW_KEY,info:dteday,info:season,info:yr,info:mnth,info:hr,info:holiday,info:weekday,info:workingday,info:weathersit,info:temp,info:atemp,info:hum,info:windspeed,info:casual,info:registered,info:label hour1 /user/hduser/hour

二、数据导出

1、数据导出

hbase org.apache.hadoop.hbase.mapreduce.Export student /user/hduser/stu

2、hbase中两个表之间拷贝

hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=studentCopy student

3、跨集群拷贝数据

集群1创建表:create 'test_table','f‘

初始化测试数据

put 'test_table','1','f:q1','test1'

put 'test_table','2','f:q1','test2'

在集群2创建表:create 'test_table_copy','f‘

跨集群复制表,从集群1复制到集群2。在主集群下运行:

hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=master,slave1,slave2:2181:/hbase --new.name=test_table_copy test_table

集群2查看表:scan ‘test_table_copy’

集群1:hbase org.apache.hadoop.hbase.mapreduce.Export studentCopy  hdfs://192.168.90.224:9000/user/hduser/testcopy    #从hbase上传数据到hdfs中

集群2:create ‘testcopy’,’stuinfo’

集群2:hbase org.apache.hadoop.hbase.mapreduce.Import testcopy  /user/hduser/testcopy  #从hdfs上传数据到hbase中

4、增量备份:增量备份表数据,参数中支持timeRange,指定要备份的时间范围

格式:

hbase org.apache.hadoop.hbase.mapreduce.CopyTable ... --starttime=start_timestamp --endtime=end_timestamp --new.name=test_table_copy test_table

例:

  • hbase org.apache.hadoop.hbase.mapreduce.CopyTable --starttime=2 --endtime=5 --new.name=studentCopy StudentInfo     //复制符合条件的最新版本数据
  • hbase org.apache.hadoop.hbase.mapreduce.CopyTable --starttime=2 --endtime=5 --versions=3 --new.name=studentCopy StudentInfo     //复制多版本数据

5、部分备份:只备份某几列数据

hbase org.apache.hadoop.hbase.mapreduce.CopyTable ... --families=srcCf1,srcCf2 #copy cf1,cf2两个列族,不改变列族名字

hbase org.apache.hadoop.hbase.mapreduce.CopyTable ... --families=srcCf1:dstCf1, srcCf2:dstCf2 #copy srcCf1到目标dstCf1新列族

例子:hbase org.apache.hadoop.hbase.mapreduce.CopyTable --families=StuInfo --new.name=studentCopy StudentInfo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值