我有一个顺序文件,它的键值对类型为"org.apache.hadoop.typedbytes.TypedBytesWritable",我必须提供这个文件作为 Hadoop 作业的输入,并且只能在地图中处理它。我的意思是我不必做任何需要减少的事情。
1) 我将如何将 FileInputFormat 指定为 SequentialFile ?
2) map 函数的签名是什么。
3) 我将如何从 map 而不是 Reduce 获得输出?
我有一个顺序文件,它的键值对类型为"org.apache.hadoop.typedbytes.TypedBytesWritable",我必须提供这个文件作为 Hadoop 作业的输入,并且只能在地图中处理它。我的意思是我不必做任何需要减少的事情。
1) 我将如何将 FileInputFormat 指定为 SequentialFile ?
2) map 函数的签名是什么。
3) 我将如何从 map 而不是 Reduce 获得输出?
1) 我将如何将 FileInputFormat 指定为 SequentialFile ?
将SequenceFileAsBinaryInputFormat设置为输入格式。这是 SequenceFileAsBinaryInputFormat 类的代码。
这是代码
JobConf conf = new JobConf(getConf(), getClass());
conf.setInputFormat(SequenceFileAsBinaryInputFormat.class);
2) map 函数的签名是什么。
映射将使用 BytesWritable 作为键和值类型来调用。
3) 我将如何从 map 而不是 Reduce 获得输出?
将该mapred.reduce.tasks
属性设置为 0。地图的输出将是作业的最终输出。
另外,看看SequenceFileAsTextInputFormat。映射将使用 Text 作为键和值类型来调用。