0

我正在使用 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)

知道有什么问题吗?

4

1 回答 1

1

Hadoop 环境变量应与 hadoop.dll 和 winutils.exe 一起正确配置。

在执行 MR job/application -Djava.library.path=HADOOP_HOME/lib/native 时也传递 JVM 参数

于 2017-07-18T06:39:21.910 回答