分布式计算介绍
hadoop里面的分布式计算。
通过程序从数据库拉取数据的过程非常慢。
mysql存储在磁盘,磁盘io,即把磁盘数据读到内存里面,再通过网络,传到计算程序里面,这两个是造成慢的主要原因。主要原因是网络io。
即发生了移动数据。
所以考虑把计算程序传输到数据所在的节点。
即执行本地计算,就只需做一个磁盘io。
分布式计算:
在本地执行本地计算,多台机器执行,每台计算局部计算。
全局汇总,此时数据集合的传输量比较少,网络io消耗少。
分布式计算: 将计算程序发送到本地 避免大数据传输
局部聚合 -> 数据传输(网络I/O) ->整体聚合
1、数据很大, 写的jdp代码拉数据就会很慢,mysql存在本地磁盘,
所以需要读取磁盘io ,将磁盘数据读到内存,然后用网络将数据传过来 网络io,
将代码移动计算移到数据上的机器上
2:hadlop:做本地局部运算--》将局部运算的结果进行汇总计算->获取最终结果
hadoop分布式计算
第一阶段:将计算程序放到各个数据节点上进行计算
第二阶段:将第一阶段的计算结果进行汇总
分布式计算
磁盘io从数据库获得数据,再通过网络io将数据传到计算程序,网络io消耗时间,数据移动到计算程序,数据量大时慢。而将计算程序移动到数据节点时速度快,此时就是一个本地计算
第一阶段(局部数据计算)——》第二阶段(汇总程序)
1、MySQL的磁盘IO
2、网络IO,相对更影响性能
分布式计算
1、第一阶段:数据节点计算程序
2、第二阶段:汇总程序
分布式计算:就是先在每台数据节点服务器上都安装计算程序,对每个数据节点的数据进行局部计算,每台数据节点服务器局部计算后的结果然后再通过网络io 传到汇总程序节点进行最终的汇总计算,这样就会节省很多数据节点的网络io 操作,以空间换时间,因为计算程序占用内存并不会很大,所以在每一个数据节点上安装计算程序,不会占用太多内存资源。
两个阶段,第一个阶段对节点进行数据计算,然后汇总到第二阶段
把计算程序移动到数据所在的节点上,提高效率