python+大数据学习day5

MapReduce

核心架构思想:先分再合,分而治之。

出MapReduce处理的数据类型是 <key,value> 键值对 。MapReduce内置了很多默认属性,比如排序、分组等,都和数据的k有关,所以说kv的类型数据确定及其重要的
分布式计算将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。相对于集中计算。
MapReduce是一种面向海量数据处理的一种指导思想,也是一种用于对大规模数据进行分布式计算的编程模型。
特点: 易于编程、良好的扩展性、高容错性、适合海量数据的离线处理
局限性: 实时计算性能差、不能进行流式计算
一个完整的MapReduce程序在分布式运行时有 三类
1、  MRAppMaster :负责整个MR程序的过程调度及状态协调
2、 MapTask :负责map阶段的整个数据处理流程
3、 ReduceTask :负责reduce阶段的整个数据处理流程
Reduce 阶段执行过程
  第一阶段:ReduceTask会主动从MapTask 复制拉取 属于需要自己处理的数据。
  第二阶段:把拉取来数据,全部进行 合并 merge ,即把分散的数据合并成一个大的数据。再对合并后的数据 排序
  第三阶段是对排序后的键值 对调用 reduce 方法 键相等 的键值对调用一次reduce方法。最后把这些输出的键值对 写入到HDFS文件中。

 wordcount实例:hadoop fs -mkdir /input

hadoop fs -put 1.txt /input

hadoop jar hadoop-mapreduce-examples-3.3.0.jar wordcount /input /output
第一个参数:wordcount表示执行单词统计任务;
第二个参数:指定输入文件的路径;
第三个参数:指定输出结果的路径(该路径不能已存在);
执行结果的web显示
1.txt内容:hello world
dog fish
hadoop 
spark
hello world
dog fish
hadoop 
spark
hello world
dog fish
hadoop 
spark
wordcount执行图: 
shuffle 机制弊端
Shuffle是MapReduce程序的核心与精髓,是MapReduce的灵魂所在。
Shuffle也是MapReduce被诟病最多的地方所在。MapReduce相比较于Spark、Flink计算引擎慢的原因,跟 Shuffle机制有很大的关系。
Shuffle中 频繁涉及到数据在内存、磁盘之间的多次往复

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值