架构比对
简单一句描述。
mpp架构,就是找一群和自己能力差不多的任一起做事,每个人做的事情是一致的。
hadoop架构,就是找一群能力差一些的人,但只需要他们每个人只做一部分工作。
举例说明
一个特色小饭店如何成为连锁餐饮巨头。
一个做宫保鸡丁的夫妻店生意越来越好,顾客经常吃不上,于是考虑扩张。
第一阶段-存算一体
于是把周围的店铺也租下来,招聘了几个学徒,经过七七四十九天学习,徒弟们终于把买菜、洗菜、切菜、炒菜、摆盘、上菜搞定了,顾客表示很满意。
师傅和学徒组成了mpp架构,即starRocks。
第二阶段-存算分离
经过半年生意越来越好,还是供不应求。再招聘一批学徒的话,还得培养七七四十九天,太累人。
现在流程太长了,每个人都得去买菜、洗菜、切菜、炒菜、摆盘、上菜。
于是乎,招聘了一批小工,专门负责去买菜和洗菜。
这样师傅和学徒们只要负责切菜、炒菜、摆盘、上菜,效率又提升了,接住了这部分客户需求。
师傅和学徒组成了mpp架构,即starRocks。小工们类似于hdfs。
第三阶段-混合模型
又过了一年,顾客越来越多,且还不满足只有宫保鸡丁,还想吃地三鲜、咖喱鸡肉、清炒土豆丝、红蘑土豆片等等。
鸡肉 | 土豆 | 胡萝卜 | 花生米 | |
---|---|---|---|---|
宫保鸡丁 | 鸡肉丁 | 土豆丁 | 胡萝卜丁 | |
咖喱鸡肉 | 鸡肉块 | |||
地三鲜 | 土豆条 | |||
清炒土豆丝 | 土豆丝 | |||
红蘑土豆片 | 土豆片 |
从上述菜品可以看出,土豆的需求量很大,且类型还多。
于是乎把切菜也包给小工做,但毕竟小工能力弱,买菜、洗菜、切菜全都做的话,就风险很大。
所以分成5组,第一组负责买菜、第二组负责洗菜、第三组负责土豆去皮,第四组负责土豆切条,第五组负责土豆切丝。
这样分工的好处就是,可以直接从市场上招聘大量的小工来提升做菜效率。
那么师傅和学徒只要关心炒菜即可。
师傅和学徒组成了mpp架构,即starRocks。小工们从hdfs升级为hive+hdfs,相当于承担了更多的重复性劳动。
功能比较
mpp架构,就是找一群和自己能力差不多的任一起做事,每个人做的事情是一致的。
hadoop架构,就是找一群能力差一些的人,但只需要他们每个人只做一部分工作。
换句话说,hadoop擅长把大问题拆分成小问题,一层一层处理。mpp是把大问题进行切片,每个节点还是处理大问题,只是大问题的数据量变少。
功能清单 | MPP | hadoop | 补充说明 |
---|---|---|---|
数据最大吞吐量 | 弱 | 强 | mpp相比hadoop,受限于单个人的处理能力,因为单个服务器的处理能力是有上限的 |
单机计算性能 | 强 | 弱 | mpp招聘的人能力强,一般是采用C++,hadoop是基于java |
数据写入效率 | 弱 | 强 | 在hadoop由于每个人做的工作是一样的,且简单,不需要考虑东西发给谁,只要均匀分布即可。但在mpp则要求是这个人的东西一定要都发给这个人 |
数据读取效率 | 强 | 弱 | 因为mpp在存储数据的时候是按照规则存储,只要按照规则去拿效率一定是高的;而hadoop的是随机分布,只是保证均匀 |
安装部署 | 简单 | 复杂 | mpp一般是一体化安装,hadoop是需要至少安装hive、hdfs、zk等组件 |
SQL开发能力 | 强 | 弱 | MPP理论上可以更多的函数处理,hadoop有些特别的计算需要依赖代码实现 |