当前位置:   article > 正文

Hbase备份(HBase Backup)之 Hbase Export、Hbase Import

hbase export

目录

Export

mapreduce-based Export

endpoint-based Export

对照表

Import


export 方法将表的内容转储到同一集群上的HDFS。要恢复数据,将使用 import 。

Export

将表数据以 sequence file 的格式转存到 HDFS,通过运行 Coprocessor Endpoint 或 MapReduce。

mapreduce-based Export

$ bin/hbase org.apache.hadoop.hbase.mapreduce.Export <tablename> <outputdir> [<versions> [<starttime> [<endtime>]]]

endpoint-based Export

注意:通过添加 org.apache.hadoop.hbase.coprocessor.Export 到 hbase.coprocessor.region.classes 确保 Export 启用

$ bin/hbase org.apache.hadoop.hbase.coprocessor.Export <tablename> <outputdir> [<versions> [<starttime> [<endtime>]]]

outputdir 是导出之前不存在的 HDFS 目录。完成后,调用 export 命令的用户将拥有导出的文件。

对照表

 

 Endpoint-based ExportMapreduce-based Export

HBase 版本需求

2.0+

0.2.1+

Maven dependency

hbase-endpoint

hbase-mapreduce (2.0+), hbase-server(prior to 2.0)

Requirement before dump

mount the endpoint.Export on the target table

deploy the MapReduce framework

Read 延迟

low, 直接从 region 读数据

normal, 传统的RPC扫描

Read 可伸缩性

取决于 region 的数量

取决于 mapper 的数量 (see TableInputFormatBase#getSplits)

Timeout

操作超时。由hbase.client.operation.timeout配置

扫描超时。由 hbase.client.scanner.timeout.period 配置

需求权限

READ, EXECUTE

READ

容错

no

取决于 MapReduce

  1. Usage: Export [-D <property=value>]* <tablename> <outputdir> [<versions> [<starttime> [<endtime>]] [^[regex pattern] or [Prefix] to filter]]
  2. Note: -D properties will be applied to the conf used.
  3. For example:
  4. -D mapreduce.output.fileoutputformat.compress=true
  5. -D mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.GzipCodec
  6. -D mapreduce.output.fileoutputformat.compress.type=BLOCK
  7. 此外,可以指定以下扫描属性控制/限制出口。
  8. -D hbase.mapreduce.scan.column.family=<family1>,<family2>, ...
  9. -D hbase.mapreduce.include.deleted.rows=true
  10. -D hbase.mapreduce.scan.row.start=<ROWSTART>
  11. -D hbase.mapreduce.scan.row.stop=<ROWSTOP>
  12. -D hbase.client.scanner.caching=100
  13. -D hbase.export.visibility.labels=<labels>
  14. 对于非常宽的表,可以考虑设置如下的批大小:
  15. -D hbase.export.scanner.batch=10
  16. -D hbase.export.scanner.caching=100
  17. -D mapreduce.job.name=jobName - use the specified mapreduce job name for the export
  18. 对于MR性能,考虑以下特性:
  19. -D mapreduce.map.speculative=false
  20. -D mapreduce.reduce.speculative=false

默认情况下,Export 只导出给定 cells 的最新版本,而不考虑存储的版本数。要导出多个版本,请将<versions>替换为所需的版本数。

注意:输入扫描的缓存是通过 job 配置中的 hbase.client.scanner.caching

Import

Import是一个实用程序,它将加载已导出回HBase的数据。通过调用:

$ bin/hbase org.apache.hadoop.hbase.mapreduce.Import <tablename> <inputdir>

 

  1. Usage: Import [options] <tablename> <inputdir>
  2. 默认情况下,import会将数据直接加载到hbase中。要生成数据文件以准备大容量数据加载,请传递选项:
  3. -Dimport.bulk.output=/path/for/output
  4. 如果有一个大的结果,其中包含了太多可能由Memery Sort in Reducer引起的单元格空白,请传递选项:
  5. -Dimport.bulk.hasLargeResult=true
  6. 要对输入应用通用org.apache.hadoop.hbase.filter.filter,请使用 :
  7. -Dimport.filter.class=<name of filter class>
  8. -Dimport.filter.args=<comma separated list of args for filter
  9. 注意:过滤器将在通过HBASE_IMPORTER_RENAME_CFS属性进行键重命名之前生效。
  10. 此外,过滤器将仅使用Filter#filterRowKey(byte[] buffer, int offset, int length)方法来确定是否需要完全忽略当前行进行处理,而Filter#filterCell(Cell)方法来确定是否应该添加Cell;
  11. Filter.ReturnCode#INCLUDE 和 #INCLUDE_AND_NEXT_COL将被视为包含 Cell。
  12. 要导入从HBase 0.94导出的数据,请使用
  13. -Dhbase.import.version=0.94
  14. -D mapreduce.job.name=jobName - use the specified mapreduce job name for the import
  15. 就表现而言,可考虑下列方案:
  16. -Dmapreduce.map.speculative=false
  17. -Dmapreduce.reduce.speculative=false
  18. -Dimport.wal.durability=<在将数据写入hbase时使用。允许的值是受支持的持久性值,如SKIP_WAL/ASYNC_WAL/SYNC_WAL/…>

要在0.96集群或更高版本中导入0.94个导出文件,需要设置系统属性“hbase.import”。当运行import命令如下:

$ bin/hbase -Dhbase.import.version=0.94 org.apache.hadoop.hbase.mapreduce.Import <tablename> <inputdir>

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/969883
推荐阅读
相关标签
  

闽ICP备14008679号