其他分享
首页 > 其他分享> > Hadoop 和 MPP 作为数仓组件的区别

Hadoop 和 MPP 作为数仓组件的区别

作者:互联网

1,原理对比

MPP方案中的数据通常在节点之间拆分(分片),每个节点仅处理其本地数据。而且,每家都有专门为 MPP 解决方案开发的复杂而成熟的 SQL 优化器。它们都可以在内置语言和围绕这些解决方案的工具集方面进行扩展,支持地理空间分析、数据挖掘的全文搜索。在任务执行过程中,单一的 Executor 只处理一个单一的 task,因此可以简单直接将数据 stream 到下一个执行阶段。这个过程称为pipelining,它提供了很大的性能提升。而Hadoop 需要保存中间状态数据,IO存储速度拖慢了数据处理效率。

 

 MPP 方案: Teradata greenpalm  presta impala  

hadoop 批处理方案:  Mapreduce  ,  HIVE  , spark  

2,对比表格

对比项 MPP Hadoop
平台开放 封闭和专有。对于某些技术,非客户甚至无法下载文档 完全开源的供应商和社区资源可通过互联网免费获得
硬件选项 许多解决方案都是使用供应商的设备的,您无法在自己的集群上部署软件。所有解决方案都需要特定的企业级硬件,例如快速磁盘、具有大量 ECC RAM 的服务器、10GbE/Infiniband 等。 对硬件要求低,自己定制
可扩展性(节点) 平均数十个节点,最多 100-200 个 平均 100 个节点,最多数千个
可扩展性(用户数据) 平均数十 TB,PB 为最大值 平均数百 TB,最大数十 PB
查询延迟 10-20 毫秒 10-20 秒
查询平均运行时间 5-7秒 10-15分钟
查询最大运行时间 1-2小时 1-2周
查询优化 复杂的企业查询优化器引擎被保存为最有价值的企业机密之一 没有优化器或功能非常有限的优化器,有时甚至不是基于成本的
查询调试和分析 代表性查询执行计划和查询执行统计信息,解释性错误消息 OOM 问题和 Java 堆转储分析、集群组件上的 GC 暂停、每个任务的单独日志给你很多有趣的时间
价格 每个节点数万到数十万美元 每个节点免费或高达数千美元
最终用户的可访问性 简单友好的 SQL 界面和简单的可解释的数据库内函数 SQL 并不完全符合 ANSI,用户应该关心执行逻辑、底层数据布局。函数通常需要用Java编写,编译并放在集群上
用户受众 业务分析师 Java 开发人员和经验丰富的 DBA
单一作业冗余 低,当 MPP 节点失败时作业失败 高,只有节点管理作业失败,作业执行会失败
目标系统 通用数仓系统 专用数据处理引擎
供应商锁定 典型
建议的最小集合大小 任何 任何
最大并发 数十到数百个查询 根据集群能力,任何
技术可扩展性 仅使用供应商提供的工具 与引入的任何全新开源工具(Spark、Samza、Tachyon 等)混合使用
DBA 技能水平要求 平均 RDBMS DBA 很高,具有良好的 Java 和 RDBMS 背景
解决方案实施复杂性 一般 很高

 

对比结论:

MPP:  商业化软件,服务更好, 查询效率和优化器更好,  价格更高,生态扩展性差,开发难度低。

hadoop 批处理方案: 开源方案, 生态扩展性好,开发难度高。对于海量数据,处理低价值密度数据更适合。

 

标签:数仓,Java,解决方案,Hadoop,查询,MPP,优化,节点
来源: https://www.cnblogs.com/gao1261828/p/16400128.html