Ich habe meine gecrawlten Daten in Hbase gespeichert, deren Dateisystem hdfs ist. Dann kopierte ich meine Daten (eine Tabelle von hbase) von hdfs direkt in ein lokales Verzeichnis mit dem Befehl
%Vor%Danach habe ich diese Daten mit dem Befehl
wieder in eine andere hbase (anderes System) kopiert %Vor% Es wird in hdfs gespeichert und wenn ich den list
-Befehl in der hbase-Shell verwende, wird es als eine andere Tabelle angezeigt, dh 'mydata', aber wenn ich den scan
-Befehl ausfühle, heißt das, es gibt keine Tabelle mit 'mydata'-Namen .
Was ist das Problem mit dem obigen Verfahren? In einfachen Worten:
Wenn Sie die Tabelle von einem HBAS-Cluster exportieren und in einen anderen importieren möchten, verwenden Sie eine der folgenden Methoden:
Verwenden von Hadoop
Exportieren
%Vor%HINWEIS: Kopieren Sie das Ausgabeverzeichnis in hdfs von der Quelle zum Zielcluster
Importieren
%Vor%Hinweis: Sowohl outputdir als auch inputdir befinden sich in hdfs.
Verwenden von Hbase
Exportieren
%Vor%Kopieren Sie das Ausgabeverzeichnis in hdfs von der Quelle zum Zielcluster
Importieren
%Vor%Wenn Sie den Hbase-Befehl stattdessen verwenden können, um hbase-Tabellen zu sichern, können Sie das Hbase ExportSnapshot-Tool verwenden, das die hfiles, logs und Snapshot-Metadaten mit einem Map Reduce-Job in ein anderes Dateisystem (local / hdfs / s3) kopiert >
Machen Sie einen Schnappschuss der Tabelle
$ ./bin/hbase shell
hbase> snapshot 'myTable', 'myTableSnapshot-122112'
Exportieren Sie in das erforderliche Dateisystem
$ ./bin/hbase class org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot MySnapshot -copy-to fs://path_to_your_directory
Sie können es vom lokalen Dateisystem in hdfs: /// srv2: 8082 / hbase exportieren und den Befehl restore von der hbase-Shell ausführen, um die Tabelle aus dem Snapshot wiederherzustellen.
%Vor%Referenz: Hbase-Snapshots
Tags und Links hadoop hbase local-files