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

MR笔记:Map-Reduce实践笔记

2014-08-26 15:27 106 查看
1:一些

瓶颈在I/O这一块,因为大数据的传输。

通过分片实现数据计算本地化,一个分片对应一个task

其他并行计算框架:MPI PVM CUDA BOINC

目前云计算主流解决方案:Hadoop与Openstack(EC2的山寨版,EC2是云计算开山之作,属于亚马逊)

2:应用

hadoop进行日志收集与分析(eg.京东POP 淘宝数据魔方)

淘宝:hadoop集群/云梯 storm实时处理/银河 数据存入MySql/MyFOX与HBase/Prom普罗米修斯

百度hadoop:用户搜索日志与访问日志

3:执行

设置Reducer数目:mapred-site.xml

添加属性mapred.reduce.tasks,缺省为1

多个class打成test.jar:jar cvf ./test.jar ./*.class

运行mapreduce:bin/hadoop jar ./test.jar Test ./in/data/shuju ./out

4:性能调优

reducer数目

输入大文件优于小文件

减少网络输出:压缩map的输出

调节每个节点能运行的任务数:mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum

缺省为2

5:传统统计脚本M-R化

hadoop-streaming:无需任何API,即可完美融合,分布式计算加速传统任务。

6:linux自带wordcount

root@ServerTony:/home/tony/input# cat test1.txt 

hello world

root@ServerTony:/home/tony/input# cat test1.txt | wc

      1       2      12

root@ServerTony:/home/tony/input# cat test1.txt | wc -l

1

root@ServerTony:/home/tony/input# cat test1.txt | wc -w

2

root@ServerTony:/home/tony/input# cat test1.txt | wc -c

12

hadoop-streaming运行linux自带wc:

bin/hadoop jar contrib/streaming/hadoop-streaming-1.2.1.jar -input in -output output -mapper /bin/cat -reducer /usr/bin/wc

root@ServerTony:/home/tony/hadoop-1.2.1# bin/hadoop fs -cat ./output/part-00000

      2       4      27

7:任务执行优化

mapred.job.reuse.jvm.num.tasks设置单个JVM运行上限最大任务数,-1表示无限制
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息