MR笔记:Map-Reduce实践笔记

来源:互联网 发布:淘宝信用卡套现 编辑:程序博客网 时间:2024/05/23 01:15
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表示无限制
0 0