Я пытаюсь экспортировать таблицу из кластера1 в кластер2 с помощью моментальных снимков. Однако cluster2 не доступен из CLUSTER1, так что я не могу сделать:ExportSnapshot не удалось загрузить
bin/hbase class org.apache.hadoop.hbase.snapshot.tool.ExportSnapshot -snapshot MySnapshot -copy-to hdfs://cluster2:8020/hbase -mappers 16
Однако, я могу экспортировать в HDFS как:
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot snapshot_my_table -copy-to hdfs://cluster1/export
Приведенная выше команда создает следующие каталоги:
hdfs://cluster1/export/.hbase-snapshot
hdfs://cluster1/export/archive
Я скопировал файлы в «HDFS: //cluster1/export/.hbase-snapshot/snapshot_my_table» в локальной файловой системе, а затем tar.gzip'ed их, а затем УПП 'd их кластер2 через другую машину.
Я Разархивирован их под hdfs://cluster2/export/.hbase-snapshot/
Затем я вошел в Hbase оболочки, и был в состоянии увидеть снимок через list_snapshots.
Однако при выдаче команды clone_snapshot
, я получаю:
ERROR: org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException: Corrupted snapshot 'name: "snapshot_my_table"
table: "my_table"
creation_time: 1416346483927
type: FLUSH
version: 0
'
at org.apache.hadoop.hbase.snapshot.SnapshotReferenceUtil$1.storeFile(SnapshotReferenceUtil.java:176)
at org.apache.hadoop.hbase.util.FSVisitor.visitRegionStoreFiles(FSVisitor.java:115)
at org.apache.hadoop.hbase.util.FSVisitor.visitTableStoreFiles(FSVisitor.java:81)
at org.apache.hadoop.hbase.snapshot.SnapshotReferenceUtil.visitTableStoreFiles(SnapshotReferenceUtil.java:114)
at org.apache.hadoop.hbase.snapshot.SnapshotReferenceUtil.verifySnapshot(SnapshotReferenceUtil.java:169)
at org.apache.hadoop.hbase.master.snapshot.SnapshotManager.restoreSnapshot(SnapshotManager.java:713)
at org.apache.hadoop.hbase.master.HMaster.restoreSnapshot(HMaster.java:3025)
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:38247)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2008)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:92)
at org.apache.hadoop.hbase.ipc.FifoRpcScheduler$1.run(FifoRpcScheduler.java:73)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.io.FileNotFoundException: Unable to open link: org.apache.hadoop.hbase.io.HFileLink locations=[hdfs://cluster2/apps/hbase/data/data/default/my_table/d988362b296868d458b9473126ed391e/r/0ff1b8969c3049cc9f9f9852760de544, hdfs://cluster2/apps/hbase/data/.tmp/data/default/my_table/d988362b296868d458b9473126ed391e/r/0ff1b8969c3049cc9f9f9852760de544, hdfs://cluster2/apps/hbase/data/archive/data/default/my_table/d988362b296868d458b9473126ed391e/r/0ff1b8969c3049cc9f9f9852760de544]
at org.apache.hadoop.hbase.io.FileLink.getFileStatus(FileLink.java:376)
at org.apache.hadoop.hbase.snapshot.SnapshotReferenceUtil$1.storeFile(SnapshotReferenceUtil.java:174)
... 15 more
Так что другие файлы мне нужно сделать, чтобы включить в свой экспорт?
Заранее спасибо.
Спасибо! Он работал после того, как я также экспортировал архив. – user3403657