我对hadoop非常陌生。目前我有一个Map器,一个减缩器和一个合并器。我能做到 cat file | mapper.py | reducer.py | combiner.py 产生结果。还原阶段是尴尬的平行。那么,如果我有一个hadoop集群,有人能告诉我如何将它融入hadoop流媒体吗?
cat file | mapper.py | reducer.py | combiner.py
nc1teljy1#
hadoop流媒体支持stdin/stdout。因此可以重用mapper.py、reducer.py和combiner.py考虑签名:
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \ -input myInputDirs \ -output myOutputDir \ -mapper org.apache.hadoop.mapred.lib.IdentityMapper \ -reducer org.apache.hadoop.mapred.lib.IdentityReducer \ -D stream.map.output.field.separator=. \ -D stream.num.map.output.key.fields=4
因此,您可以使用此签名来实现前两个步骤,即mapper.py和reducer.py。
--mapper mapper.py --reducer reducer.py
然后,您可以通过添加另一个hadoop流来创建组合器,只需一个简化步骤
<first part> | -- reducer 'combiner.py'
1条答案
按热度按时间nc1teljy1#
hadoop流媒体支持stdin/stdout。因此可以重用mapper.py、reducer.py和combiner.py
考虑签名:
因此,您可以使用此签名来实现前两个步骤,即mapper.py和reducer.py。
然后,您可以通过添加另一个hadoop流来创建组合器,只需一个简化步骤