2016-07-06 45 views
0

當HBase的創建快照我收到一條錯誤消息:「快照‘snapshot_name’在expectedTime沒有完成所有的數據:60000毫秒驗證HBase的快照caputred

然而,當我再列出我的當前快照我看到在預期的時間內返回錯誤的快照實際上是創建的。

如何將該快照與源表(我正在拍攝快照的表)進行比較以驗證它是否創建了一個完整的源表的快照?

回答

1

該錯誤意味着快照進程花費一個那麼長的時間預期,相關的代碼是在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 

如果你想要的數據進行比較,你可以先複製快照到另一個表,並運行圖 - 減少工作比較。

+0

謝謝,我已經將快照克隆到另一個表。我發現了一些說我可以運行下面的命令,但是我從hbase shell的命令行運行它嗎?如果是這樣,我使用整個命令還是隻使用第一行?如果我需要在「Usage:」之後使用該部分,那麼我不知道該填寫什麼內容。 \t HBase的org.apache.hadoop.hbase.mapreduce.RowCounter 用法:RowCounter [選項] [ --starttime = [開始] --endtime = [結束] [--range = [startKey],[endKey]] [ ...] ] –

+0

RowCounter http://hbase.apache.org/book.html#_rowcounter_example只是獲取指定表中的行數而不是比較內容兩張桌子。所以你的意思是你只想比較克隆表和原始的行數?你可以在hbase shell中運行「count'your-table'」,如果你想要的話...... –

+0

「Count 」是我最初嘗試過的,但是它耗時過長,然後失敗。我發現一個命令可以更快地返回計數,但減少工作永遠不會運行。當它完成時,它總是說INFO mapreduce.Job:map 100%減少0%。但是,它仍然提供行計數。儘管獲得準確的計數,減少工作是否也需要運行? 此外,許多工作都將返回一個結果像這樣: 信息mapreduce.Job:地圖100%降至0% 信息mapreduce.Job:工作job_123456失敗與國家失敗的原因:任務失敗,task_123456 工作作爲失敗任務失敗。 –