实例讲解hadoop中的map/reduce查询(python语言实现)

时间:14-06-17 栏目:软件架构技术 作者:乐测网 评论:0 点击: 690 次

条件,假设你已经装好了hadoop集群,配好了hdfs并可以正常运行。

$hadoop dfs -ls /data/dw/explorer
Found 1 items
drwxrwxrwx     - rsync supergroup                    0 2011-11-30 01:06 /data/dw/explorer/20111129

$ hadoop dfs -ls /data/dw/explorer/20111129
Found 4 items
-rw-r--r--     3 rsync supergroup     12294748 2011-11-29 21:10 /data/dw/explorer/20111129/explorer_20111129_19_part-00000.lzo
-rw-r--r--     3 rsync supergroup             1520 2011-11-29 21:11 /data/dw/explorer/20111129/explorer_20111129_19_part-00000.lzo.index
-rw-r--r--     3 rsync supergroup     12337366 2011-11-29 22:09 /data/dw/explorer/20111129/explorer_20111129_20_part-00000.lzo
-rw-r--r--     3 rsync supergroup             1536 2011-11-29 22:10 /data/dw/explorer/20111129/explorer_20111129_20_part-00000.lzo.index

数据格式如下
20111129/23:59:54 111.161.25.184 182.132.25.243 <Log_Explorer ProductVer="5.05.1026.1111" UUID="{C9B80A9B-704E-B106-9134-1ED3581D0123}"><UserDoubleClick FileExt="mp3" AssociateKey="Audio.mp3" Count="1"/></Log_Explorer>
1.map脚本取数据explorer_map.py

 

2.reduce脚本计算结果并输出explorer_red.py

 

3.放入crontab执行的脚本

 

4.将/tmp生成的结果入库并删除临时文件夹

 

原始数据和最后完成的输出数据对比,红色为原数据,绿色为输出数据
20111129/23:59:54 111.161.25.184 182.132.25.243 <Log_Explorer ProductVer="5.05.1026.1111" UUID="{C9B80A9B-704E-B106-9134-1ED3581D0123}"><UserDoubleClick FileExt="mp3" AssociateKey="Audio.mp3" Count="1"/></Log_Explorer>

-----------------------------------------------------------

2011-11-29,5.05.1026.1111,mp3,Audio,Audio.mp3,1

5.调试技巧
因为这种方式比较抽象,所以你很难得到一个直观的调试过程。建议调试如下
#将hadoop中的数据文本copy出来一个,lzo需要解压缩,然后将map中的debug模式置为True,也就是不加hadoop中的lzo偏移量。
#用head输入hadoop里的文件,通过管道操作放入map/reduce中执行,看输出结果

$head explorer_20111129 | explorer_map.py | explorer_red.py

一天的数据大概几十个G,以前用awk和perl脚本跑需要至少半小时以上,改用map/reduce方式后,大概20几秒跑完,效率还是提高了很多的。

声明: 本文由( 乐测网 )原创编译,转载请保留链接: 实例讲解hadoop中的map/reduce查询(python语言实现)

实例讲解hadoop中的map/reduce查询(python语言实现):等您坐沙发呢!

发表评论(需填写下方的验证回答,无用户名的评论将视为匿名发表,您也可以登陆或注册后再发表评论)

您必须 [ 登录 ] 才能发表留言!

@关注乐测网

-----==== 本站公告 ====-----
1.本站是目前唯一能支持智能手机平板电脑访问的软件测试技术网站.
2.具体访问方法请参考本站的手机访问说明,或直接点击以下链接:

→点击这里打开手机平板访问说明←

    智能手机平板电脑访问方法

1.用手机浏览器输入本站网址http://www.test666.com就可直接访问
2.微信、QQ、微博或手机浏览器的二维码扫描功能扫描以下二维码图

标签云球