作者:深深i | 来源:互联网 | 2023-07-26 10:32
1、MPPDB架构大规模并行处理(MPP)架构Master进行集群的管理及数据分布式处理一般会有一个CoordinatorNode,客户端直接与CN交互,CN与Master交互获得
1、MPPDB架构
大规模并行处理(MPP)架构
Master进行集群的管理及数据分布式处理
一般会有一个Coordinator Node,客户端直接与CN交互,CN与Master交互获得全局事务和数据分布信息,下发任务到DataNode,执行真正的数据处理,CN可以针对处理结果进行汇2聚等,并返回最终的结果
2、NoSQL分布式数据库
key-value方式,分布式集群管理,集群节点数一般能达到上百个(mongodb有商用的实践不超过1000),集群节点数越大,集群管理(元数据、节点状态、故障/扩缩容等)会变复杂,
HDFS的分布式节点数能达到几千台
3、HDFS
分布式文件系统,将单机无法存储/处理的文件,分布到N台机器上存储,上层应用通过路径文件名即可写入读取
HDFS上的数据,一般存储的是原始的,并不经过预处理(maybe存储数据的时候,还不知道该如何预处理)
4、SQL-on-Hadoop
sparksql、hive、hive on spark、impala等等,与mppdb类似,基于sql的交互,前三个实际处理时会将sql转换成MR或者RDD/DS进行处理,impala是直接基于HDFS提供sql能力的
5、对比
1)MPPDB一般在load阶段,会把数据存储成合适的格式;SQL-on-Hadoop相当于是数据湖,存储的是原始的,在分析阶段根据具体的业务场景再处理;
2)MPPDB对SQL的支持比SQL-on-Hadoop好,后面这个差距可能会越来越小
3)MPPDB一般都是基于列的存储,以Scan为基础,适合做交互的实时查询;Hadoop类适合对海量数据做批处理或者自定义UDF的场景
4)MPPDB的可扩展性比Hadoop类要差
5)MPPDB/SQL-on-Hadoop更适用于一次写,多次读,NoSql支持频繁的写入/更新/删除等
6)NoSql在大数据的场景下,可配合其他技术栈使用,比如HDFS存储原始数据,MR/SPARK等根据数据分析的具体场景,scan全量数据(长时间)进行数据处理/预处理,将处理的结果,存储到NoSql中,可供外部交互式查询