2016-07-06 39 views
0

Wenn Schnappschüsse in HBase Erstellen ich einen Fehler empfangen Angabe „Snapshot‚snapshot_name‘wurde in expectedTime nicht abgeschlossen. 60000 msÜberprüfen HBase Snapshot alle Daten caputred

Allerdings, wenn ich dann meine aktuelle Schnappschüsse Liste Ich sehe, dass Der Snapshot, der den Fehler zurückgab, der besagt, dass er nicht in der erwarteten Zeit abgeschlossen wurde, wurde trotzdem erstellt.

Wie vergleiche ich diesen Snapshot mit der Quellentabelle (Tabelle, von der ich einen Snapshot gemacht habe), um zu überprüfen, ob ein Complete erstellt wurde Snapshot der Quelltabelle?

Antwort

1

Der Fehler bedeutet, dass der Snapshot-Prozess a kostet mehr Zeit als erwartet, bezogenen Code ist in HbaseAdmin.snapshot:

if (!done.getDone()) { 
    throw new SnapshotCreationException("Snapshot '" + snapshot.getName() 
     + "' wasn't completed in expectedTime:" + max + " ms", snapshot); 
} 

Aber die Anfrage an den Server und der Snapshot-Prozess beginnt bereits gesendet. Wenn Sie die angegebene Momentaufnahme überprüfen möchten, können Sie es auf WebUI überprüfen, die URL wie:

http://your-hmaster:60010/snapshot.jsp?name=your-snapshot-name 

Wenn Sie die Daten vergleichen wollen, können Sie den Snapshot an einen anderen Tisch zuerst klonen, und eine Karte laufen - Job reduzieren, um zu vergleichen.

+0

Danke, ich habe den Snapshot bereits auf eine andere Tabelle geklont. Ich habe etwas gefunden, das besagt, dass ich den folgenden Befehl ausführen könnte, aber führe ich das über die Befehlszeile in der HBAS-Shell aus? Wenn ja, verwende ich den gesamten Befehl oder nur die erste Zeile? Wenn ich das Teil nach "Benutzung" benutzen muss, bin ich mir nicht sicher, was ich dort ausfüllen soll.  \t hbase org.apache.hadoop.hbase.mapreduce.RowCounter Verbrauch: RowCounter [Optionen] [ --starttime = [Start] --endtime = [Ende] [--range = [startKey], [endKey]] ...] ] –

+0

RowCounter http://hbase.apache.org/book.html#_rowcounter_example ist nur die Anzahl der Zeilen in der angegebenen Tabelle nicht vergleichen den Inhalt von zwei Tische. Sie meinen also, dass Sie nur die Zeilenanzahl der geklonten Tabelle und das Original vergleichen möchten? Sie können "Count your-table" in hbase Shell ausführen, wenn Sie das wollen ... –

+0

"Count " war was ich ursprünglich versuchte, aber es dauerte viel zu lange und dann scheitern. Ich habe einen Befehl gefunden, der die Zählung VIEL schneller zurückgibt, aber der Job zum Reduzieren läuft nie. Wenn es fertig ist, sagt es immer INFO mapreduce.Job: map 100% reduce 0%. Es bietet jedoch immer noch eine Zeilenanzahl. Muss der Reduce-Job auch ausgeführt werden, um eine genaue Anzahl zu erhalten? Auch viele der Arbeitsplätze ein Ergebnis wie diese zurückgeben: INFO mapreduce.Job: Karte 100% reduziert 0% INFO mapreduce.Job: Job job_123456 mit Zustand wegen gescheiterten failed: Aufgabe fehlgeschlagen task_123456 Auftrag fehlgeschlagen als Aufgaben fehlgeschlagen. –