阿里巴巴少杰:大数据处理实践

简介: 2018年1月6日的数据智能技术论坛上,来自阿里巴巴计算平台事业部高级技术专家少杰带来大数据处理的相关演讲。本文首先浅谈了大数据处理发展历程和MapReduce的诞生,以确定大数据处理系统的实现模式,接着重点分享了Maxcompute和飞天的架构实践,包括盘古伏羲和SQL查询,最后作了简要总结。

2018年1月6日的云栖社区数据智能技术论坛上,来自阿里巴巴计算平台事业部高级技术专家少杰带来大数据处理的相关演讲。本文首先浅谈了大数据处理发展历程和MapReduce的诞生,以确定大数据处理系统的实现模式,接着重点分享了Maxcompute和飞天的架构实践,包括盘古伏羲和SQL查询,最后作了简要总结。

以下是精彩视频内容整理:

大数据处理和分布式技术

大数据处理

1


我们在数据中心的设置上,经历了三个阶段。80年代中期以前,我们是对于文件做处理的模式,只能处理KB-MB的数据;2010年以前,这是DataBase辉煌的年代,无论是开发信息平台还是互联网应用,都是以DataBase为中心的,比如Oracle、SQLserver、MySQL等,DataBase上也有很多生态系统,可以处理MB-GB级数据;随着数据量持续爆炸,传统DataBase很难支持下去,所以一批大数据处理平台应运而生,比如Hadoop、Spark、Flink等,可以处理100GB-PB级存储和计算。
传统的大数据用例包括日志分析(网站被如何访问,货被如何移动)、商业智能和数据挖掘(人工智能算法)、图计算、检索、机器学习和人工智能等一些更高级计算都在上面。所以,Maxcompute可以支持多编程模型多用例的开发模式。
每一种应用都有各自的挑战,和传统DataBase系统比较,如果数据量极大,会存在硬件故障、网络带宽和延迟、(存储、计算)成本和效率/时效性等多方面挑战。
伴随这些挑战带来的冲突,我们要重新审视传统数据库设计,传统数据库强调ACID、强调隔离性、强调一致性,这些在分布式环境中很难保证,比如网络时效性需要高性能,写机房时需要异步方式同步到另一个机房,这时很难保证一致性。此外,传统数据库都是结构化/关系型的,如果处理大数据,很多大数据通常不是结构化的,一些新的人工智能应用可能不需要结构化存储,结构化存储可能影响设计;传统并行计算也有很多尝试,包括复杂事件处理和MPI处理,但是事实上还不能打破条件,而且性能和相关指标也达不到要求。

MapReduce

2


因此,MapReduce诞生了。通过数据本身特性,用KEY value数据结构组织数据,每一个worker可以通过Map处理一个KEY value数据结构,KEY value 数据结构用KEY特性重新分布数据,再用下一批任务去做处理,MapReduce可以描述很多复杂的逻辑,MapReduce没有尝试像CEP或MPI去构造一个通用的超高性能高并发计算机,而是通过需要用户去改变编程模型来实现分布式数据处理。
Hadoop是MapReduce论文的参考实现,发表论文一两年后,Hadoop已经成为独立项目,它经历几个代表性阶段Hadoop1.0阶段对应MapReduce、HDFS、HBase、Hive/Pig/Cascades,Hadoop得到飞速发展;Hadoop2.0阶段对应HDFS federation,、YARN、 Tez,Hadoop得到广泛接受,是可以面向企业级的成熟软件;现阶段,Hadoop不仅仅局限于自身系统,包括周边系统,像Spark,Flink, Presto/Drill, Cassandra都和Hadoop有千丝万缕联系,共同构建了一个生态圈。
总结来说,大数据系统实现模式表现为:
  1. 层次化设计。通常一个大数据系统下面会有一个分布式文件系统,分布式文件系统下会有分布式调度系统,分布式调度系统下可能会有编程模型的实现,这与Maxcompute实现较类似;
  2. 去中心/弱中心控制。没有中心节点,不必连接某个节点才能接入整个分布式系统;
  3. Commodity Computing。我们希望使用廉价机器,用全分布系统搭建,而非专有昂贵硬件才可以搭建系统。

飞天和Maxcompute

Maxcompute是阿里巴巴在大数据方面的离线在线分布式大数据处理系统,飞天相当于底层,可以理解为底层文件系统和底层调度系统。飞天和Maxcompute合起来称为阿里巴巴自研大数据处理系统,该系统运行在全球超过8万台物理节点,支持每日几百万次查询,阿里内部也有几千人在使用该系统进行日常分析和处理操作。Maxcompute具备有竞争力的技术实现和性能指标,按照相同的硬件来看,已经可以超过最新Hive2.1版本性能90%,超过Spark实现性能30%,Maxcompute目前以专有云和公有云的形式对外售卖。

3


Maxcompute和飞天也是分层设计,其架构总图如图所示,最下面是一套文件系统;上面是Maxcompute Framework,可以理解为一个调度框架,框架下有很多调度单元,包括SQL、Graph、Streaming等,还有Metadata元数据,可以用来解析和优化数据查询;最上面是SDK、Studio等用户接口,我们也有DataX和Datahub等访问工具。
可以看出,Maxcompute是全功能的,可以支持数据导入导出、支持文件存储调度、支持多编程模型的分布式大数据处理平台。

盘古

4


盘古和所有分布式文件系统比较类似,它需要去中心化快速访问底下所有存储,分布式系统中不能有单点限制流量和稳定性,所以盘古有分离设计,对于顶层目录服务来说,只需要存储一个file和对应的block数据存储单元,block层对应的block就可以存储在不同的chunkserver。所以,上面可以是若干台机器组成的目录服务,下面是非常多机器存储的具体文件块,每次请求一个块时,只要访问一次master后,即可直接和chunkserver交互。

伏羲

5


伏羲是一个资源调度系统,我们针对于不同的编程模型和应用,都需要兼容,伏羲希望做成完全不关系底部应用,只关心如何调度一个资源。比如一个应用请求需要1000台机器,SQL对resource manager提出请求,底下有application master可以用应用来实现,SQL会实现application master来具体调度1000台机器如何使用。

Maxcompute SQL

6


Maxcompute SQL包含两部分,一部分是planning,是指如何将SQL解析成执行计划,包括用户SQL statement——Parse Tree——Algebraic Tree,进而生成执行计划;一部分是执行,执行计划移到计算集群上,伏羲调度系统给到一系列机器,这些机器对应去具体文件存储地方访问文件,每次访问文件client都会直接访问盘古master,盘古master给到具体存储后就可以直接访问了。

案例分析

7


如图SQL查询,首先会生成一个TOK Tree,将词法解析成具体的TOK;然后生成一个关系代数树;优化后生成一个执行计划,对应了算法选择等。

8


执行计划又是如何执行呢?如图两张表,一张表是foo table,一张表是bar table,这两张表对应数据在join时,需要把key对应到join key重新分发到下面一堆机器,保证join key在相同机器上都是独立的,都是经过表名做排序的,每一台机器对应execution plan做出最后结果。
Maxcompute上还有其它知识组件,包括块数据传输服务Tunnel,流式数据传输服务DataHub
,数据交互工具DataX。Maxcompute在用户终端上也支持ODPS Studio、ODPS Console、pyOdps / Pai等。

9


在更高层的调度上,我们支持D2系统,帮助用户实现任务集依赖管理。

总结

综上,对大数据处理的原理和系统实现以及Maxcompute进行分析后,得出如下总结概括:

  1. 现代大数据处理使用大规模分布式系统搭建的廉价集群。
  2. 大数据处理系统不是单一系统,通常是分层的设计。
  3. 飞天/Maxcompute是一个全系统栈、多编程模型、广泛接口支持的大数据处理系统。

本文由云栖社区志愿者小组毛鹤整理编辑,程弢审核
活动相关文章
蚂蚁金服西亭:智能金融的技术挑战与方案
阿里云朱金童:深度揭秘ET大脑
阿里巴巴阿外:客服全链路智能解决方案
浙江大学杨洋:社交网络中的群体用户行为分析与表示学习
阿里巴巴iDST杨森:智能决策在电商平台的应用
阿里巴巴布民:图计算是生产力

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
数据采集 监控 算法
利用大数据和API优化电商决策:商品性能分析实践
在数据驱动的电子商务时代,大数据分析已成为企业提升运营效率、增强市场竞争力的关键工具。通过精确收集和分析商品性能数据,企业能够洞察市场趋势,实现库存优化,提升顾客满意度,并显著增加销售额。本文将探讨如何通过API收集商品数据,并将这些数据转化为对电商平台有价值的洞察。
|
2月前
|
存储 数据可视化 数据管理
基于阿里云服务的数据平台架构实践
本文主要介绍基于阿里云大数据组件服务,对企业进行大数据平台建设的架构实践。
713 2
|
4月前
|
存储 SQL 分布式计算
开源大数据比对平台设计与实践—dataCompare
开源大数据比对平台设计与实践—dataCompare
68 0
|
4月前
|
SQL 存储 大数据
某互联网大厂亿级大数据服务平台的建设和实践
某互联网大厂亿级大数据服务平台的建设和实践
68 0
|
6月前
|
机器学习/深度学习 分布式计算 数据挖掘
MaxCompute 应用场景实践
MaxCompute 应用场景实践
92 0
|
7月前
|
SQL 存储 分布式计算
MaxCompute元数据使用实践--项目信息统计
MaxCompute的租户级别Information Schema从租户角度提供项目元数据及使用历史数据等信息,您可以一次性拉取您同一个元数据中心下所有Project的某类元数据,从而进行各类元数据的统计分析。
482 0
|
5月前
|
分布式计算 Kubernetes Spark
米哈游大数据云原生实践
近年来,容器、微服务、Kubernetes 等各项云原生技术的日渐成熟,越来越多的公司开始选择拥抱云原生,并开始将 AI、大数据等类型的企业应用部署运行在云原生之上。以 Spark 为例,在云上运行 Spark 可以充分享有公共云的弹性资源、运维管控和存储服务等,并且业界也涌现了不少 Spark 。
|
1月前
|
存储 数据处理 Apache
万字长文 | 泰康人寿基于 Apache Hudi 构建湖仓一体平台的应用实践
万字长文 | 泰康人寿基于 Apache Hudi 构建湖仓一体平台的应用实践
69 0
|
4月前
|
分布式计算 项目管理 MaxCompute
MaxCompute元数据使用实践--数据权限统计
本文主要介绍通过元数据的相关权限的视图进行数据权限的统计。
101489 2
|
4月前
|
存储 SQL 数据挖掘
某工商信息商业查询平台基于阿里云数据库 SelectDB 版内核 Apache Doris 的湖仓一体建设实践
从传统 Lambda 架构到基于 Doris Multi-Catalog 的湖仓一体架构实践,保证了数据的准确性和实时性、高效处理和分析了大规模数据,推动信息服务行业发展创新!
某工商信息商业查询平台基于阿里云数据库 SelectDB 版内核 Apache Doris 的湖仓一体建设实践