擅长:python、mysql、java
<p>为了兼容性,Hadoop支持用Java编写map/reduce任务的两种方式:“旧”的通过<code>org.apache.hadoop.mapred</code>包的接口,而“新”通过<code>org.apache.hadoop.mapreduce</code>包中的抽象类实现。在</p>
<p>即使使用流式api,您也需要知道这一点,因为流式处理本身是使用旧方法编写的,因此,当您想用外部库更改流式处理机制的某些内部内容时,您应该确保该库也是用旧的方法编写的。在</p>
<p>你就是这样。在一般情况下,您需要编写包装器,但幸运的是,<a href="https://github.com/kevinweil/elephant-bird" rel="nofollow">Elephant Bird</a>提供了一个旧样式的<code>InputFormat</code>,因此您只需要将<code>com.twitter.elephantbird.mapreduce.input.LzoTextInputFormat</code>替换为<code>com.twitter.elephantbird.mapred.input.DeprecatedLzoTextInputFormat</code>。在</p>