Hadoop中Hdfs负责存储,Yarn负责资源管理,负责计算的框架,名为MapReduce,仅仅存储数据是毫无意义的,数据的价值在于运算,在海量数据运算中,我们就能挖掘数据的价值。
通过讲数据分发到不同节点进行计算,最后再汇总的计算思想,就是MapReduce的设计核心。
分布式计算
我们自己写的JDBC代码是在一台机器上运行,mysql数据库是在另一台机器上运行。
正常情况下,我们通过jdbc代码去mysql中获取一条数据,速度还是很快的,但是有一个极端情况,如果我们要获取的数据量很大,达到了几个G,甚至于几十G,就会很慢,主要是两方面原因。
1.磁盘IO
2.网络IO
这两个里面其实最耗时的还是网络 io , 我们平时在两台电脑之间传输一个几十 G 的文件也需要很长时间的,但是如果是使用U盘拷贝就很快了,所以可以看出来主要耗时的地方是在网络IO上面。
如果我们考虑把计算程序移动到mysql上面去执行,就可以节省网络IO
移动数据是传统的计算方式,现在的一种新思路是移动计算。
如果我们数据量很大的话,我们的数据肯定是由很多个节点存储的,这个时候我们就可以把我们的程序代 码拷贝到对应的节点上面去执行。
分布式计算的步骤
- 1.对每个节点进行局部计算
- 2.对每个节点的局部计算结果就行全局汇总