org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException: 无法读取快照信息 from:file:/tmp/hbase-cloudera/hbase
org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException: Couldn't read snapshot info from:file:/tmp/hbase-cloudera/hbase
您好,我正在尝试将 Hbase table 快照导出到我的本地 hdfs,以便我可以 运行 对其进行 mapreduce。
我已经使用下面的命令
拍摄了 Hbase table 的快照
snapshot 'FundamentalAnalytic','FundamentalAnalyticSnapshot'
另外,当我 运行 list_snapshots
命令时,我也可以看到我的快照。
我已经使用以下命令将我的 Hbase table 快照导出到我的本地 HDFS 目录并成功复制。
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot FundamentalAnalyticSnapshot -copy-to /tmp -mappers 16
最后我必须 运行 在快照上映射 reduce 所以下面是我配置该作业的驱动程序代码。
TableMapReduceUtil.initTableSnapshotMapperJob(snapshotName, // input table
scan, // Scan instance to control CF and attribute selection
DefaultMapper.class, // mapper class
NullWritable.class, // mapper output key
Text.class, // mapper output value
job,
true,
new Path("/home/cloudera/archive/data/default/FundamentalAnalytic/bc95715f67e52547e86b5b096a1f1cb5/cf/d29205a44623434eba2d100a94d8ebfb_SeqId_4_"));
这是我出错的地方。
我不知道我必须在 initTableSnapshotMapperJob 方法中作为最后一个参数给出哪条路径。
当我 运行 此代码时,我得到以下错误。
org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException: Couldn't read snapshot info from:file:/tmp/hbase-cloudera/hbase/.hbase-snapshot/FundamentalAnalyticSnapshot/.snapshotinfo
at org.apache.hadoop.hbase.snapshot.SnapshotDescriptionUtils.readSnapshotInfo(SnapshotDescriptionUtils.java:294)
at org.apache.hadoop.hbase.snapshot.RestoreSnapshotHelper.copySnapshotForScanner(RestoreSnapshotHelper.java:818)
at org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormatImpl.setInput(TableSnapshotInputFormatImpl.java:355)
at org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormat.setInput(TableSnapshotInputFormat.java:204)
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.initTableSnapshotMapperJob(TableMapReduceUtil.java:335)
at com.thomsonretuers.hbase.HBaseToFileDriver.run(HBaseToFileDriver.java:128)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at com.thomsonretuers.hbase.HBaseToFileDriver.main(HBaseToFileDriver.java:75)
Caused by: java.io.FileNotFoundException: File file:/tmp/hbase-cloudera/hbase/.hbase-snapshot/FundamentalAnalyticSnapshot/.snapshotinfo does not exist
关于快照的一个简单问题。
- 我想拍摄快照和 运行 完整 table 扫描,在那种情况下扫描
快照会影响区域服务器性能吗?
我用正确的路径解决了
创建快照
snapshot 'FundamentalAnalytic','FundamentalAnalyticSnapshot'
将快照导出到本地 hdfs
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot FundamentalAnalyticSnapshot -copy-to /tmp -mappers 16
Hbase 快照上的 rum mapreduce 驱动程序作业配置
String snapshotName="FundamentalAnalyticSnapshot";
Path restoreDir = new Path("hdfs://quickstart.cloudera:8020/tmp");
String hbaseRootDir = "hdfs://quickstart.cloudera:8020/hbase";
TableMapReduceUtil.initTableSnapshotMapperJob(snapshotName, // Snapshot name
scan, // Scan instance to control CF and attribute selection
DefaultMapper.class, // mapper class
NullWritable.class, // mapper output key
Text.class, // mapper output value
job,
true,
restoreDir);
此外 运行 Hbase 快照上的 mapreduce 将跳过 Hbase 上的扫描 table 并且也不会对区域服务器产生影响。
您好,我正在尝试将 Hbase table 快照导出到我的本地 hdfs,以便我可以 运行 对其进行 mapreduce。
我已经使用下面的命令
拍摄了 Hbase table 的快照snapshot 'FundamentalAnalytic','FundamentalAnalyticSnapshot'
另外,当我 运行 list_snapshots
命令时,我也可以看到我的快照。
我已经使用以下命令将我的 Hbase table 快照导出到我的本地 HDFS 目录并成功复制。
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot FundamentalAnalyticSnapshot -copy-to /tmp -mappers 16
最后我必须 运行 在快照上映射 reduce 所以下面是我配置该作业的驱动程序代码。
TableMapReduceUtil.initTableSnapshotMapperJob(snapshotName, // input table
scan, // Scan instance to control CF and attribute selection
DefaultMapper.class, // mapper class
NullWritable.class, // mapper output key
Text.class, // mapper output value
job,
true,
new Path("/home/cloudera/archive/data/default/FundamentalAnalytic/bc95715f67e52547e86b5b096a1f1cb5/cf/d29205a44623434eba2d100a94d8ebfb_SeqId_4_"));
这是我出错的地方。 我不知道我必须在 initTableSnapshotMapperJob 方法中作为最后一个参数给出哪条路径。
当我 运行 此代码时,我得到以下错误。
org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException: Couldn't read snapshot info from:file:/tmp/hbase-cloudera/hbase/.hbase-snapshot/FundamentalAnalyticSnapshot/.snapshotinfo
at org.apache.hadoop.hbase.snapshot.SnapshotDescriptionUtils.readSnapshotInfo(SnapshotDescriptionUtils.java:294)
at org.apache.hadoop.hbase.snapshot.RestoreSnapshotHelper.copySnapshotForScanner(RestoreSnapshotHelper.java:818)
at org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormatImpl.setInput(TableSnapshotInputFormatImpl.java:355)
at org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormat.setInput(TableSnapshotInputFormat.java:204)
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.initTableSnapshotMapperJob(TableMapReduceUtil.java:335)
at com.thomsonretuers.hbase.HBaseToFileDriver.run(HBaseToFileDriver.java:128)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at com.thomsonretuers.hbase.HBaseToFileDriver.main(HBaseToFileDriver.java:75)
Caused by: java.io.FileNotFoundException: File file:/tmp/hbase-cloudera/hbase/.hbase-snapshot/FundamentalAnalyticSnapshot/.snapshotinfo does not exist
关于快照的一个简单问题。
- 我想拍摄快照和 运行 完整 table 扫描,在那种情况下扫描 快照会影响区域服务器性能吗?
我用正确的路径解决了
创建快照
snapshot 'FundamentalAnalytic','FundamentalAnalyticSnapshot'
将快照导出到本地 hdfs
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot FundamentalAnalyticSnapshot -copy-to /tmp -mappers 16
Hbase 快照上的 rum mapreduce 驱动程序作业配置
String snapshotName="FundamentalAnalyticSnapshot";
Path restoreDir = new Path("hdfs://quickstart.cloudera:8020/tmp");
String hbaseRootDir = "hdfs://quickstart.cloudera:8020/hbase";
TableMapReduceUtil.initTableSnapshotMapperJob(snapshotName, // Snapshot name
scan, // Scan instance to control CF and attribute selection
DefaultMapper.class, // mapper class
NullWritable.class, // mapper output key
Text.class, // mapper output value
job,
true,
restoreDir);
此外 运行 Hbase 快照上的 mapreduce 将跳过 Hbase 上的扫描 table 并且也不会对区域服务器产生影响。