1、什么是(数据)计算?
2、分布式(数据)计算
(1)概念
顾名思义,分布式计算,即以分布式的形式完成数据的统计,得到需要的结果。
分布式数据计算,顾名思义,就是“以多取胜”,如果一个问题使用一台计算机计算需要耗时1天,那我们就是用几百个数据节点来计算。
(2)我们为什么要使用分布式计算?
在计算和处理数据时,我们为什么要使用分布式计算,不能用“计算器”来计算吗?
其实,使用什么方式来处理数据,并不是由我们决定的,是由数据本身决定的。
3、分布式(数据)计算模式
(1)基础模式
~分散——>汇总模式
将一个数据分配给许多服务器,每一个服务器分配到一部分的数据,当它们将数据处理完成,将它们各自处理的数据结果向其中一台服务器进行汇报,由该台服务器做归纳总结。生活中的人口普查就是一个典型的例子。
~中心调度——>步骤执行模型
将一个数据分配给许多服务器,每一个服务器分配到一部分的数据,由一台服务器进行调度,当该台服务器发出“第一阶段”的命令时,各个节点的服务器开始第一阶段数据的计算,在第一阶段数据计算完成后,各个节点之间相互交换数据,再开始第二阶段数据的计算,在最后一个阶段数据计算完成后,由主节点进行汇总结果。
注意:
在第一阶段数据计算结束后,各个节点之间需要交换数据,才能进行下一阶段的计算。
相对于分散——>汇总模式,中心调度——>步骤执行模式,中间各个节点之间会进行交换数据,各个节点负责的数据是动态的,或者某个节点开启下一个阶段计算的要求,是另一个阶段该阶段的计算数据。如工作中的项目经理与项目成员就是一个典型的例子。
(2)常见框架
hadoop系统中的MapReduce使用的就是分散——>汇总框架,但是大数据体系中的一些明星框架,使用的多是中心调度——>步骤执行模式,如Apache Spark,Apache Flink使用的就是中心调度——>步骤执行模式。