hadoop streaming

本文介绍如何使用Hadoop Streaming功能,通过Python编写MapReduce程序。包括mapper.py和reducer.py的编写过程,以及如何提交Hadoop作业并查看最终结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hadoop streaming支持其它编程语言来写map、reduce程序,下面以python为例子。

1.编写mapper.py

#!/usr/bin/env python

import sys

for line in sys.stdin:
    for word in line.split():
        print '%s\t%s' % (word, 1)

2.测试mapper.py

cat file | python mapper.py

3.编写reducer.py

#!/usr/bin/env python

import sys

cur_key = None
cur_count = 0

for line in sys.stdin:
    key, value = line.split()
    if key == cur_key:
        cur_count += int(value)
    else:
        if cur_key:
            print '%s\t%s' % (cur_key, cur_count)
        cur_key = key
        cur_count = int(value)

print '%s\t%s' % (cur_key, cur_count)

4.提交作业

hadoop jar mydir/hadoop-1.2.1/contrib/streaming/hadoop-streaming-1.2.1.jar -mapper mapper.py -reducer reducer.py -file mapper.py -file reducer.py -input largedata -output output

5.查看结果

hadoop dfs -cat output/part-00000 | head -n 5

参考:

https://www.youtube.com/watch?v=6WuMqcUtCWw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值