hbase提供了导出表(转载)

hbase提供了导出表的方案,将指定的表导出到HDFS或本地,这样方便了备份或数据转移。 
    最快的方式是通过mapreduce来完成这件事,需要在hbase的conf中添加mapred-site.xml: 
Java代码   收藏代码
  1. <property>  
  2.   <name>mapred.job.tracker</name>  
  3.   <value>192.168.0.1:9001</value>  
  4. </property>  
  5. <property>  
  6.   <name>hadoop.tmp.dir</name>  
  7.   <value>/tmp/hadoop-${user.name}</value>  
  8. </property>  

    然后执行: 
Java代码   收藏代码
  1. hbase org.apache.hadoop.hbase.mapreduce.Export backup_table hdfs://192.168.0.1:9000/user/test/backup_table  

    数据被写到了相应的目录,一个region一个文件。默认为sequencefile。当然还可以选择对输出进行压缩等。 
    要将输出的数据导入某个hbase的表,需执行以下命令: 
Java代码   收藏代码
  1. hbase org.apache.hadoop.hbase.mapreduce.Import backup_table hdfs://192.168.0.1:9000/user/test/backup_table  

    此时再看对应的表,己经有数据了。
hbase提供了导出表的方案,将指定的表导出到HDFS或本地,这样方便了备份或数据转移。 
    最快的方式是通过mapreduce来完成这件事,需要在hbase的conf中添加mapred-site.xml: 
Java代码   收藏代码
  1. <property>  
  2.   <name>mapred.job.tracker</name>  
  3.   <value>192.168.0.1:9001</value>  
  4. </property>  
  5. <property>  
  6.   <name>hadoop.tmp.dir</name>  
  7.   <value>/tmp/hadoop-${user.name}</value>  
  8. </property>  

    然后执行: 
Java代码   收藏代码
  1. hbase org.apache.hadoop.hbase.mapreduce.Export backup_table hdfs://192.168.0.1:9000/user/test/backup_table  

    数据被写到了相应的目录,一个region一个文件。默认为sequencefile。当然还可以选择对输出进行压缩等。 
    要将输出的数据导入某个hbase的表,需执行以下命令: 
Java代码   收藏代码
  1. hbase org.apache.hadoop.hbase.mapreduce.Import backup_table hdfs://192.168.0.1:9000/user/test/backup_table  

    此时再看对应的表,己经有数据了。

猜你喜欢

转载自sunjia-704471770-qq-com.iteye.com/blog/1538714