Ich verwende com.cloudera.crunch Version: '0.3.0-3-cdh-5.2.1'.java.lang.UnsatisfiedLinkError beim Schreiben mit Crunch MemPipeline
Ich habe ein kleines Programm, das einige AVROs liest und ungültige Daten anhand einiger Kriterien herausfiltert. Ich benutze pipeline.write (PCollection, AvroFileTarget), um die ungültige Datenausgabe zu schreiben. Es funktioniert gut im Produktionslauf.
Zum Testen dieses Codeabschnitts verwende ich die MemPipeline-Instanz. Aber es scheitert beim Schreiben der Ausgabe in diesem Fall.
ich Fehler:
java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V
at org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(Native Method)
at org.apache.hadoop.util.NativeCrc32.calculateChunkedSumsByteArray(NativeCrc32.java:86)
at org.apache.hadoop.util.DataChecksum.calculateChunkedSums(DataChecksum.java:428)
at org.apache.hadoop.fs.FSOutputSummer.writeChecksumChunks(FSOutputSummer.java:197)
at org.apache.hadoop.fs.FSOutputSummer.flushBuffer(FSOutputSummer.java:163)
at org.apache.hadoop.fs.FSOutputSummer.flushBuffer(FSOutputSummer.java:144)
at org.apache.hadoop.fs.FSOutputSummer.write(FSOutputSummer.java:78)
at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.write(FSDataOutputStream.java:50)
at java.io.DataOutputStream.writeBytes(DataOutputStream.java:276)
at com.cloudera.crunch.impl.mem.MemPipeline.write(MemPipeline.java:159)
Jede Idee, was falsch ist?
Ich erinnere mich an einige bestehende Bugs in MemPipeline der AVRO Handhabung zu sehen; Ist Ihr Schema etwas besonders komplex? Können Sie Avro-Datensätze mit diesem Schema in einer MemPipeline schreiben oder sind es nur die ungültigen Datensätze, die Sie aussortieren? – Suriname0
Hallo, ich kann mit MemPipeline keine Datensätze schreiben. MemPipeline.write() gibt mir immer diesen Fehler. – Yogesh
Es ist dann wahrscheinlich ein Problem mit Ihrem Schema. Versuchen Sie, einen einfachen Test mit einem sehr einfachen Avro-Schema (z. B. einem Datensatz mit einem einzelnen String-Feld) zu erstellen, und prüfen Sie, ob Sie materialisierte Datensätze auf die Festplatte schreiben können. Wenn das nicht möglich ist, handelt es sich wahrscheinlich um ein Problem mit Ihren Abhängigkeiten. Wenn Sie ein Tool wie Maven verwenden, überprüfen Sie den Abhängigkeitsbaum und erwägen Sie explizit, einige transitive Abhängigkeiten auszuschließen, die möglicherweise Probleme verursachen. – Suriname0