我想在mapreduce作业中使用snappy。所以我在我的驱动器中添加了行。
@Override
public int run(String[] strings) throws Exception {
Configuration conf = getConf();
conf.setBoolean("mapred.compress.map.output", true);
conf.set("mapred.map.output.compression.codec", "org.apache.hadoop.io.compress.SnappyCodec");
Job myJob = new Job(conf, title);
FileInputFormat.addInputPath(myJob, input);
FileOutputFormat.setOutputPath(myJob, output);
myJob.setJarByClass(UniStarOpt.class);
myJob.setMapperClass(CCMapper.class);
myJob.setReducerClass(CCReducer.class);
myJob.setInputFormatClass(SequenceFileInputFormat.class);
myJob.setOutputFormatClass(SequenceFileOutputFormat.class);
SequenceFileOutputFormat.setCompressOutput(myJob, true);
SequenceFileOutputFormat.setOutputCompressorClass(myJob, SnappyCodec.class);
SequenceFileOutputFormat.setOutputCompressionType(myJob, CompressionType.BLOCK);
myJob.setOutputKeyClass(IntWritable.class);
myJob.setOutputValueClass(IntWritable.class);
myJob.waitForCompletion(true);
}
我使用maven添加了如下的snappy依赖项。
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
<version>1.1.7.3</version>
</dependency>
但不知怎么的,错误还是发生了。下面是错误消息。
java.lang.exception:java.lang.unsatifiedLinkError:org.apache.hadoop.util.nativecodeloader.buildsupportssnappy()z
我不知道为什么会发生这种错误。你能告诉我原因吗?
暂无答案!
目前还没有任何答案,快来回答吧!