欢迎光临散文网 会员登陆 & 注册

阿里巴巴工程师谈大数据-分布式计算,你想知道吗?

2020-07-31 10:59 作者:自学Python的小姐姐呀  | 我要投稿


分布式存储(HDFS)和NoSQL数据库是解决大规模数据高效存储的问题, HDFS是底层的存储方案。NoSQL是在这底层技术之上的应用。

是解决数据存储的问题。

分布式计算是解决大规模数据高效处理的问题 。


是解决数据计算的问题


分布式并行编程可以大幅提高程序性能,实现高效的批量数据处理。分布式程序运行在大规模计算机集群上(廉价的服务器),可以并行执行大规模数据处理任务,从而获得海量的计算能力。


(1) MapReduce简介

MapReduce是一种并行编程模型,用于大规模数据集(大于1 TB)的并行运算,它将复杂的、运行于大规模集群上的并行计算过程高度抽象到两个函数: MapReduce

它极大地方便了分布式编程工作, 编程人员在不会分布式并行原理的情况下,也可以很容的将自己的程序运行在分布式系统上,完成海量数据集的计算。


摩尔定律失效: 大规模集成电路制作工艺将达到一个极限,从2005年开始摩尔定律逐渐失效,就不能把希望过多的寄托于性能更高的CPU上,人们开始借助于分布式并行编程来提高程序性能。获得海量计算能力。

谷歌公司最先提出了分布式并行编程模型MapReduce,Hadoop MapReduce是它的开源实现,后者比前者使用门槛低很多。


(2)MapReduce函数


MapReduce模型的核心思想是 “分而治之” 。

高度抽象到两个函数: MapReduce 。

2.1 Map函数:任务拆分

把一个大任务拆分成小任务在不同计算机上执行,通常是运行在存储数据的节点上。这样计算和数据就可以一起运行。不需要额外的数据传输开销。

Map任务的处理结果也保存在本地节点里面。

输入: Map < k1 , v1 >

输出: List < k2 , v2 >


2.2 Reduce函数 处理结果汇总


map函数最终的计算结果会作为Reduce函数的输入,最终由Reduce任务汇总输出最终结果。并把结果写入到分布式文件系统里面。

Reduce < k2 , List(v2) >


(3)设计理念

划重点:

MapReduce设计的一个理念就是“计算向数据靠拢”,而不是“数据向计算靠拢”,因为移动数据需要大量的网络传输开销,尤其是在大规模数据环境下,这种开销尤为惊人,所以,移动计算要比移动数据更加经济。

本着这个理念,在一个集群中,只要有可能,MapReduce框架就会将

Map程序就近地在HDFS数据所在的节点运行,即将计算节点和存储节点放在一起运行,从而减少了节点间的数据移动开销。


数据不动,CPU动

段誉是在天龙寺学的六脉神剑剑谱(数据),鸠摩智这个超强CPU也是去天龙寺抢的剑谱。


鸠摩智出场自配音响,足与扛着音响入战阵的乔帮主相媲美。


(4 ) 分布式计算举例



处理步骤:

1、 map函数拆分任务

名称节点拆分任务,保证在数据节点上本地计算

map函数输入

Map(小任务A, sum(10+20+30))

Map(小任务B, sum(40+50+60))

Map(小任务C, sum(70+80+90))


2、map结果输出 


Map(小任务A, 60)

Map(小任务B, 150)

Map(小任务C,240)


输出的中间计算结果存储在本地, 数据节点里面。


3、Reduce汇总结果, map的输出,作为Reduce的输入

(由Shuffle函数负责对应他们之间的关系)


输入:

Reduce(结果汇总, sum(60+150+240) )


输出:Reduce(结果汇总,450)



(5)技术标签


MapReduce程序由三个步骤组成:


  • Map()步骤

其中名称节点导人输人数据,在小子集中解析这些数据,并将工作分配给数据节点。任何数据节点都将生成map0函数的中间结果,并以键/值对的形式存储在分布式文件中。输出文件位置在映射阶段结束时通知名称节点。


  • Shuffle ()步骤

‘洗牌’ :将中间结果分区排序整理后发给Reduce。

名称节点从数据节点收集答案,将值列表中共享相同密钥的键值对组合在一起,并按键值排序。排序可以是字典序、递增序或用户定义的序。

Shuffle 过程本质上都是将 Map 端获得的数据使用分区器进行划分,并将数据发送给对应的 Reducer 的过程。


  • Reduce() 步骤

执行汇总操作。 并输出计算结果。


Hadoop框架是用Java实现的,但是MapReduce应用程序则不一定要用Java来写。

更多详细免费视频点击-分布式计算

阿里巴巴工程师谈大数据-分布式计算,你想知道吗?的评论 (共 条)

分享到微博请遵守国家法律