当前位置:   article > 正文

Hbase批量数据导入与导出_hbase数据导出到hdfs

hbase数据导出到hdfs

一、数据导入

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

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号