从 0 到 1 搭建大数据平台之计算存储系统

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 从 0 到 1 搭建大数据平台之计算存储系统

前面已经给大家讲了《从0到1搭建大数据平台之数据采集系统》、《从0到1搭建大数据平台之调度系统》,今天给大家讲一下大数据平台计算存储系统。大数据计算平台目前主要都是围绕着 hadoop 生态发展的,运用 HDFS 作为数据存储,计算框架分为批处理、流处理。

一、传统的计算平台

我们都知道,没有大数据之前,我们计算平台基本是依赖数据库,大数据量的计算基本依赖 Oracle 数据库。Oracle 很强大,支撑了很多年银行、电信业务数据的计算存储。Oracle 多以集中式架构为主,最大特点就是将所有的数据都集中在一个数据库中,依靠大型高端设备来提供高处理能力和扩展性。集中式数据库的扩展性主要采用向上扩展的方式,通过增加 CPU,内存,磁盘等方式提高处理能力。这种集中式数据库的架构,使得数据库成为了整个系统的瓶颈,已经越来越不适应海量数据对计算能力的巨大需求。同时传统数据库架构对高端设备的依赖,无疑将直接导致系统成本的大幅度增加,甚至可能会导致系统被主机和硬件厂商所“绑架”,不得不持续增加投入成本。


网络异常,图片无法展示
|


二、Hadoop 的崛起

随着互联网行业的发展,特别是移动互联网的快速发展,传统数据库面临着海量数据的存储成本、有限的扩展能力等问题。新的计算框架 MapReduce 出现了,新的存储编码方式 HDFS 出现了,二者合起来,我们一般称之为 Hadoop。

Hadoop 很快凭借其高可靠性、高扩展性、成本低、高效计算等优势在各个领域得到了广泛应用。


网络异常,图片无法展示
|


三、Hive 的应用

Hive 最初是 Facebook 开源的,我们来看看 Hive 的特点:

  • Hive 是一个构建于 Hadoop 顶层的数据仓库工具,可以查询和管理 PB 级别的分布式数据。
  • 支持类 SQL 语音。
  • 可以看作为用户编程接口,本身不存储和处理数据
  • 依赖 HDFS 作为存储

我们看到 Hive 支持类 SQL 语法,我们可以很容易的把传统关系型数据库建立的数据仓库任务迁移到 Hadoop 平台上。

Hive 的架构:


网络异常,图片无法展示
|


我们可以看到 hive 提供了多种连接方式:JDBC、ODBC、Thrift。

那么我们以前使用 Oracle 的存储过程怎么迁移到 Hive 中呢?用过 Hive 的同学可能都知道,Hive 是没有想 Oracle 那样的游标循环呀,所以我们必须借助其他语言来配合 hive 一起完成数据仓库的 ETL 过程。比如这个项目:PyHive(https://github.com/dropbox/PyHive)



借助 Python,我们可以很好的弥补 Hive 在复杂处理的一些缺陷,同时也能更好的开发 ETL 任务。


网络异常,图片无法展示
|


所以,通过 Hive 我们就可以搭建起一套大数据计算平台。

四、Spark 的应用

Hive 在刚开始使用过程中很好用,对大数据量的处理确实比以前传统数据库要好,但是随着业务的增长,公司越来越多的数据工程师反馈查询慢,同时业务侧也纷纷提出,我们的数据能不能早点出,不要老是等到早上 8 点才刷新。我们需要更强大的计算引擎,Spark 使用了十分之一的计算资源,获得了比 Hadoop 快 3 倍的速度,Spark 为什么这么快呢?

我们来看看 Spark 的特点:

  • 速度快,使用 DGA(有向无环图)。
  • 支持内存计算。
  • 低延迟、高容错。

Spark 提供了存计算,可以将计算结果存放到内存中,我们都知道 MR 是将数据存储在磁盘,对磁盘读写,势必会增加 IO 操作,计算时间过长。之前我也做过一个 Hive 和 Spark 的一个执行效率的对比,当时使用的是 Spark1.6,数据是千万级别的表。


还是可以看出 Spark 比 Hive 快了很多,现在 Spark2.0 以后,会更快了。而且,Spark 同样提供的有 JDBC、ODBC 、Thrift 连接方式。



我们可以从 Hive 环境直接迁移到 Spark 环境,提高执行效率。


网络异常,图片无法展示
|


五、MPP 的应用

用了 Spark 还是不够快,每次查询提交任务后,都得等着任务启动然后看着任务执行进度一直等着。



MPP(Massively Parallel Processing)是指多个处理器(或独立的计算机)并行处理一组协同计算。为了保证各节点的独立计算能力,MPP 数据库通常采用 ShareNothing 架构。比较有代表性大家熟知的比如:GPDB、Vertica。



MPP 具备以下特点:

  • 低成本的硬件、和 Hadoop 一样,使用 x86 架构的 PC 就可以
  • 数据存储采用不同的压缩算法,减少使用空间,提高 IO 性能
  • 数据加载高效,并行加载、数据加载的速度取决于带宽
  • 易扩展,容易对集群节点进行增减
  • 列存储,很多 MPP 支持列存储架构,能够更高效的访问需要的数据
  • 支持标准 SQL,MPP 比 SparkSQL、HiveSQL 对标准 SQL 支持的更好

从以上 MPP 的特点和上面我们介绍的 Hadoop 的特点,会发现 MPP 更适合数据自助分析、即席查询等场景、能够使数据人员快速获取数据结果。

六、搭建自己的计算平台

开源的计算引擎这么多、我们如何选择合适的计算引擎搭建平台呢?

下面分多个场景来和大家探讨下:

1、小公司、无大数据平台

真正的从无到有搭建大数据平台,开发人员较少。可以直接使用 CDH 搭建起来你的大数据平台,选用 Hive 作为数据仓库的计算引擎。为什么这样选择呢?很多小公司没有足够的资金支撑大数据平台的建设,那么就会选择相对来说的比较稳定的开源组件,Hive 发展了很多年,和磁盘的交互 MR 计算架构中的任务很少会出错。Hive 对 SQL 支持的很好,开发人员很容易上手,而且维护成本很低。

2、小公司、大数据平台升级

已经有过一段时间使用 Hive 作为计算引擎后,工程师们对大数据平台已经有一定的了解和知识积累,对 Hadoop 的运维能力也提升了,随着开发人员反馈 Hive 比较慢,领导也考虑升级平台,这时候就可以引入 Spark 了。上面我们也说了 Spark 是基于内存运算的,内存始终是没有磁盘稳定,Spark 任务很多时候会因为资源设置不合理而报错。而 SparkSQL 和可以直接共享 Hive 的 metestore,直接从 Hive 迁移到 Spark 上很自然,工作流很小。同时 Spark 还提供了 Streaming 功能,可以满足公司逐渐发展遇到的实时数据问题,再也不用担心以前 hive 没半小时执行一次任务,任务还偶尔出现执行不完的场景了。

3、大公司

很多传统行业的大公司一直依赖传统关系型数据库来处理数据,花了很多钱购置硬件和服务。现在要“降本增效”,必然会对 IT 部门下手。大公司有钱,就可以招聘到专业的工程师,他们有过建设大数据平台的经验,在计算选型上可以根据自己的技术栈选择合适的计算引擎。

另外,可以买一些 MPP 数据库的服务,比如 GreenPlum 商业版、Vertica。商业版的很稳定,几乎不会碰到棘手的问题,平时只管使用就行了,大大提高的运维、开发效率。对比下来会发现比以前使用传统的关系型数据库省了不少钱。



七、总结

基于多个计算引擎搭建大数据平台是目前的现状,针对不同的企业和团队选择适合自己的,同一个公司不同的业务也可以选择不同的计算引擎。不考虑商业方案,就要根据自己的技术掌握情况,选择自己精通的并且适合业务的。考虑商业方案的可以选择商业的 MPP,给开发和业务人员提供更好的环境和体验。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
2月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
59 5
|
2月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
51 3
|
2月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
68 0
|
4月前
|
分布式计算 DataWorks 关系型数据库
MaxCompute 生态系统中的数据集成工具
【8月更文第31天】在大数据时代,数据集成对于构建高效的数据处理流水线至关重要。阿里云的 MaxCompute 是一个用于处理大规模数据集的服务平台,它提供了强大的计算能力和丰富的生态系统工具来帮助用户管理和处理数据。本文将详细介绍如何使用 DataWorks 这样的工具将 MaxCompute 整合到整个数据处理流程中,以便更有效地管理数据生命周期。
141 0
|
1月前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
2月前
|
存储 消息中间件 大数据
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
42 4
|
2月前
|
消息中间件 存储 缓存
大数据-71 Kafka 高级特性 物理存储 磁盘存储特性 如零拷贝、页缓存、mmp、sendfile
大数据-71 Kafka 高级特性 物理存储 磁盘存储特性 如零拷贝、页缓存、mmp、sendfile
64 3
|
2月前
|
存储 消息中间件 大数据
大数据-70 Kafka 高级特性 物理存储 日志存储 日志清理: 日志删除与日志压缩
大数据-70 Kafka 高级特性 物理存储 日志存储 日志清理: 日志删除与日志压缩
44 1
|
2月前
|
存储 消息中间件 大数据
大数据-68 Kafka 高级特性 物理存储 日志存储概述
大数据-68 Kafka 高级特性 物理存储 日志存储概述
31 1
|
3月前
|
人工智能 分布式计算 大数据
超级计算与大数据:推动科学研究的发展
【9月更文挑战第30天】在信息时代,超级计算和大数据技术正成为推动科学研究的关键力量。超级计算凭借强大的计算能力,在尖端科研、国防军工等领域发挥重要作用;大数据技术则提供高效的数据处理工具,促进跨学科合作与创新。两者融合不仅提升了数据处理效率,还推动了人工智能、生物科学等领域的快速发展。未来,随着技术进步和跨学科合作的加深,超级计算与大数据将在科学研究中扮演更加重要的角色。