2017-01-07 2 views
0

Ich möchte Abfrage von einer. Gz-Datei, die ich in Hive-Tabelle importiert hatte, aber wenn ich einige Abfragen verwenden, die Map-reduzieren Job zum Beispiel: Anzahl (*) aus Test auswählen; es zeigt unter Fehler:Bienenstock falsche Header-Überprüfung

java.io.IOException: incorrect header check 
    at org.apache.hadoop.io.compress.zlib.ZlibDecompressor.inflateBytesDirect(Native Method) 
    at org.apache.hadoop.io.compress.zlib.ZlibDecompressor.decompress(ZlibDecompressor.java:228) 
    at org.apache.hadoop.io.compress.DecompressorStream.decompress(DecompressorStream.java:111) 
    at org.apache.hadoop.io.compress.DecompressorStream.read(DecompressorStream.java:105) 

I geprüft und festgestellt, dass Z LIB ein Standard-Kompressor-Codec ist. Ich versuchte mit bzip Datei und es war OK. aber wie kann ich .gz Datei verwenden. Wie kann ich den Standard-Codec ändern, der die gz-Datei unterstützen kann?

+0

verwenden [link] (https://issues.apache.org/jira/browse/HADOOP-474) als reference.It Sie helfen können. –

Antwort

0

Ich konfrontiert den gleichen Fehler, obwohl ich erste paar Datensätze lesen kann, aber nein zählen. der Datensätze mit demselben Fehler fehlgeschlagen.

Ich löste das Problem nur durch Umbenennen meiner einfachen (nicht komprimierten) Datei in .txt. Zuvor war mein Dateiname; Ich habe es in .txt umbenannt. Auch wenn Sie einen Dateitest dekomprimieren, können Sie Daten daraus lesen.

Und wenn Sie Lauf Anzahl der Datensätze wie oben erklärt testen möchten, wird es einen vollständigen Scan durchführen, der Ihnen genau sagen wird, ob Daten korrekt geladen sind oder nicht.

Ich stellte diese Lösung an einem anderen Ort