我使用的是com.cloudera.crunch版本:' 0.3.0-3-cdh-5.2.1'。
我有一个小程序可以读取一些AVRO并根据某些条件过滤掉无效数据。我正在使用pipeline.write(PCollection,AvroFileTarget)来编写无效的数据输出。它在生产运行中运行良好。
对于这段代码的单元测试,我使用MemPipeline实例。 但是,在这种情况下写输出时失败了。
我收到错误:
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)
知道什么是错的吗?
答案 0 :(得分:1)
Hadoop环境变量应与hadoop.dll和winutils.exe一起正确配置。
在执行MR作业/应用程序时也传递JVM参数 -Djava.library.path = HADOOP_HOME / LIB /天然