【发布时间】:2016-07-06 18:16:46
【问题描述】:
在 HBase 中创建快照时,我收到一条错误消息,指出“快照 'snapshot_name' 未在预期时间:60000 毫秒内完成。
但是,当我随后列出我当前的快照时,我看到返回错误说它没有在预期时间内完成的快照实际上是无论如何创建的。
如何将该快照与源表(我正在对其进行快照)进行比较,以验证它是否创建了源表的完整快照?
【问题讨论】:
标签: hbase snapshot cloudera-cdh
在 HBase 中创建快照时,我收到一条错误消息,指出“快照 'snapshot_name' 未在预期时间:60000 毫秒内完成。
但是,当我随后列出我当前的快照时,我看到返回错误说它没有在预期时间内完成的快照实际上是无论如何创建的。
如何将该快照与源表(我正在对其进行快照)进行比较,以验证它是否创建了源表的完整快照?
【问题讨论】:
标签: hbase snapshot cloudera-cdh
该错误表示快照过程花费的时间比预期的要长,相关代码在HbaseAdmin.snapshot:
if (!done.getDone()) {
throw new SnapshotCreationException("Snapshot '" + snapshot.getName()
+ "' wasn't completed in expectedTime:" + max + " ms", snapshot);
}
但是请求被发送到服务器并且快照过程已经开始。如果要查看快照的说明,可以在 webUI 上查看,URL 如下:
http://your-hmaster:60010/snapshot.jsp?name=your-snapshot-name
如果要比较数据,可以先将快照克隆到另一个表,然后运行 map-reduce 作业进行比较。
【讨论】:
org.apache.hadoop.hbase.mapreduce.RowCounter$RowCounterMapper 运行作业并且没有减速器,如果没有并发写入,org.apache.hadoop.hbase.mapreduce.RowCounter$RowCounterMapper$Counters ROWS=$ROWNUM 的计数器显示是准确的。如果作业结束时没有像completed successfully 这样的消息,您应该检查失败详细信息。