您的位置:首页 > 运维架构

Hadoop streaming mapreduce多文件输入使用方法

2017-03-18 19:36 281 查看


写Mapreduce程序时,常常会有同时处理多个输入文件的的需求,那么如何在map程序中方便的知道这一条record到底来自哪个文件呢?如果数据源是可控的,我们尚可以通过字段的个数等来判断,然而这不是一个优雅的方法,其实hadoop已经给了留了解决方法:在map端获取环境变量map_input_file(0.21.x的版本分支中是mapreduce_map_input_file)即为本次的输入文件。

以笔者使用的hadoop streaming + python环境为例:

输入文件有两个:
-input "/home/hadoop/file1"
-input "/home/hadoop/file2"

在mapper文件中:
if 'file1' in os.getenv('map_input_file'):

//文件1处理逻辑
if 'file2' in os.getenv('map_input_file'):

//文件2处理逻辑
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop mapreduce
相关文章推荐