2017-06-23 4 views
1

Ich versuche, eine lokale Datei Prüfsumme mit hadoop fs -checksum zu berechnen. Aber es gibt nur keine zurück.HDFS-Prüfsumme für lokale Datei berechnen.

[[email protected] tmp]$ hadoop fs -checksum file:///user/centos//a.json file:///user/centos/a.json NONE

Ich habe versucht,

hadoop fs -copyFromLocal a.json file:///user/centos/a.json Eine solche Verwendung, dass /user/centos in lokalen Ordner einen .a.json.crc file erzeugen. Aber die Ergebnis-Prüfsumme gibt immer noch keine zurück.

Wie kann Hadoop die Prüfsumme lokal berechnen lassen?

Antwort

1

hadoop fs -checksum ist derzeit nicht in der Lage, eine Prüfsumme für eine Datei aus dem lokalen Dateisystem zu berechnen. Potenzielle Abhilfen sind:

  • Apache JIRA HADOOP-12326 Spuren Dateien auf dem lokalen Dateisystem als Ziel des hadoop fs -checksum Befehl unterstützen. Wenn Sie die Funktion jetzt wirklich benötigen, können Sie möglicherweise die Hadoop-Quelle herunterladen, den an HADOOP-12326 angehängten Patch anwenden und einen benutzerdefinierten Build erstellen, indem Sie die Anweisungen in BUILDING.txt befolgen. Bitte beachten Sie, dass der Patch noch nicht von der Apache Hadoop-Community genehmigt und ausgeführt wurde. Verwenden Sie ihn daher auf eigenes Risiko.
  • Wenn Sie nur nach einer Möglichkeit zum Übertragen von CRC-Informationen suchen, wenn Sie eine Datei aus HDFS in das lokale Dateisystem kopieren, können Sie das Argument -crc an den Befehl get übergeben.

Beispiel:

hadoop fs -get -crc hello 

ls -lrta 
... 
-rw-r--r-- 1 cnauroth     cnauroth      12 Jun 23 15:28 .hello.crc 
-rw-r--r-- 1 cnauroth     cnauroth      6 Jun 23 15:28 hello 
...