Wie hbase-Daten über hdfs importiert / exportiert werden (Hadoop-Befehle)

8

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:

  1. Ich möchte die hbase-Tabelle mithilfe eines hadoop-Befehls
  2. in mein lokales Dateisystem kopieren
  3. Dann möchte ich es direkt in hdfs in einem anderen System durch Hadoop-Befehl
  4. speichern
  5. Schließlich möchte ich, dass die Tabelle in hbase erscheint und ihre Daten als Originaltabelle anzeigt
Shafiq 18.09.2014, 09:35
quelle

2 Antworten

20

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

Nanda 09.10.2014, 09:21
quelle
4

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

    
VishAmdi 01.02.2016 02:57
quelle

Tags und Links