阿里云大数据MaxCompute计算资源分布以及LogView分析优化
MaxCompute(原ODPS)的概念
大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的PB/EB级数据仓库解决方案,具备万台服务器扩展能力和跨地域容灾能力,是阿里巴巴内部核心大数据平台,支撑每日百万级作业规模。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。(官方文档有这里就不多做介绍了)
官方文档链接
用户不必关心分布式计算细节,从而达到分析大数据的目的。
大型互联网企业的数据仓库和BI分析、网站的日志分析、电子商务网站的交易分析、用户特征和兴趣挖掘等。
MaxCompute(原ODPS)的架构![odps.structure.png odps.structure.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/689b890f735af67fc83dff6889cbec54.png)
ODPS的客户端有以下几种形式: Web:ODPS以 RESTful API的方式提供离线数据处理服务; ODPS SDK:对ODPS RESTful API的封装,目前有Java等版本的实现; ODPS CLT (Command Line Tool):运行在Window/Linux下的客户端工具,通过CLT可以提交命令完成Project管理、DDL、DML等操作; ODPS IDE:ODPS提供了上层可视化ETL/BI工具,即“采云间”,用户可以基于采云间完成数据同步、任务调度、报表生成等常见操作。
ODPS接入层提供HTTP服务、Cache、Load Balance,用户认证和服务层面的访问控制。 逻辑层又称作控制层,是ODPS的核心部分。实现用户空间和对象的管理、命令的解析与执行逻辑、数据对象的访问控制与授权等功能。在逻辑层有Worker、Scheduler和Executor三个角色: Worker处理所有RESTful请求,包括用户空间(project)管理操作、资源(resource)管理操作、作业管理等,对于SQL DML、MR、DT等启动Fuxi任务的作业,会提交Scheduler进一步处理; Scheduler负责instance的调度,包括将instance分解为task、对等待提交的task进行排序、以及向计算集群的Fuxi master询问资源占用情况以进行流控(Fuxi slot满的时候,停止响应Executor的task申请); Executor负责启动SQL/ MR task,向计算集群的Fuxi master提交Fuxi任务,并监控这些任务的运行。
计算层就是飞天内核(Apsara Core),运行在和控制层相互独立的计算集群上。包括Pangu(分布式文件系统)、Fuxi(资源调度系统)、Nuwa/ZK(Naming服务)、Shennong(监控模块)等。ODPS中的元数据存储在阿里云计算的另一个开放服务OTS(Open Table Service,开放结构化数据服务)中,元数据内容主要包括用户空间元数据、Table/Partition Schema、ACL、Job元数据、安全体系等。 MaxCompute处理流程
下面将以一个完整的SQL语句为例,介绍提交后经过MaxCompute处理的全流程:
客户端接收到返回的 Instance ID 后,可以通过 Instance ID 来查询作业状态:
客户端会发送另一个 REST 的请求,查询作业状态。 HTTP 服务器根据配置信息,去云账号服务器做用户认证。 用户认证通过后,把查询的请求发送给 Worker。 Worker 根据 InstanceID 去 OTS 中查询该作业的执行状态。 Worker 将查询到的执行状态返回给客户端。这里主要说下计算层的MR Job和SQL Job,因为ODPS有对外提供MapReduce编程接口,来访问ODPS上的数据,其中MR Job就是用来跑那些任务的。而SQL Job主要用来跑通过客户端接受的SQL查询请求的任务。
逻辑层里主要有二个队列,一个是instance队列,一个是Task队列,Scheduler负责instance的调度,负责将instance分解成Task放入到Task队列,重点是:Task队列是按照优先级排序的,负责排序的就是Scheduler发起的一个后台线程。Executor在资源未满的情况下,轮询TaskPool,请求Task,Executor调用SQL Parse Planner,生成SQL Plan,然后将SQL Plan转换成计算层的 FuXi Job 描述文件,最终将该描述文件提交给计算层运行,并查询 Task 执行状态。
MaxCompute生态圈![ad8af45fb581339a3444388c13887aa1af9e563b](https://yqfile.alicdn.com/ad8af45fb581339a3444388c13887aa1af9e563b.png)
ODPS提供了数据上传下载通道,SQL及MapReduce等多种计算分析服务,并且提供了完善的安全解决方案,其功能组件(绿色虚线部分)以及周边组件(蓝色标识)。
具体功能组件的作用,请参考官方文档。 MaxCompute计算集群分布
![odps_resource.png odps_resource.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/91c8479966eba19447049760737b1701.png)
当某个任务跑的比较慢,我们可以根据其logview来发现问题,进行优化,下面给大家分享如何对logview进行分析,下面我们来看根据某个logview的分析步骤:
![logview1.png logview1.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/1f0d207b8596c553536bd2ad3af059ee.png)
![logview2.png logview2.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/3ca3f85ee7819c99a82cfe5e86c243cf.png)
![logview3.png logview3.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/c03bd5dbdc00c10adcdd7998876bb255.png)
具体的优化过程以后会给大家具体讲解,下面先给大家展示一个例子,由于小表和大表进行join所造成的长尾问题的解决方案以及效果:
-优化方案:
我们将join的二个小表,使用mapjoin的方式进行优化,将每个小表的内容load到每个mapper节点的内存中,这个速度可以大大优化,但是对小表的大小是有限制的,如果太小,可以设置每个mapper的memery的大小,但是这些都不是万能的,当资源不足时,可能会造成资源等待。所以优化方案要根据自己sql以及涉及到的数据量进行优化,任何优化方法都不是万能的。
-优化前:
![screenshot.png screenshot.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/20c77ddf9dfa7dc379696069270d2ae7.png)
![screenshot.png screenshot.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/b4f81b813bef458b325202a3aec0b8db.png)
希望大家在跑sql任务的时候,多看看自己的logview,不要太蛮力的去跑sql,这样不仅占用资源太多,而且还会影响别人的任务运行。优化固然很难,但是也要慢慢走下去。
以后会分享更多的优化方案。
MaxCompute Spark 资源使用优化详解 本文主要讲解MaxCompute Spark资源调优,目的在于在保证Spark任务正常运行的前提下,指导用户更好地对Spark作业资源使用进行优化,极大化利用资源,降低成本。
使用DataX同步MaxCompute数据到TableStore(原OTS)优化指南 现在越来越多的技术架构下会组合使用MaxCompute和TableStore,用MaxCompute作大数据分析,计算的结果会导出到TableStore提供在线访问。MaxCompute提供海量数据计算的能力,而TableStore提供海量数据高并发低延迟读写的能力。
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。
隐林 阿里云大数据产品专家,擅长MaxCompute、机器学习、分布式、可视化、人工智能等大数据领域;
相关文章
- “窃取用户数据”?看阿里如何应对
- 阿里参谋长曾鸣:那天,我泪流满面
- 苏州协鑫与阿里云合作“大数据”分析
- [阿里研究院]“互联网+”的动力:云计算、大数据与新分工网络
- 马云致投资者公开信:大数据云计算是阿里未来十年核心战略之一
- D-News大数据新闻Top10|阿里财报公布 AI领域新动态
- 阿里云MaxCompute(大数据)公开数据集---带你玩转人工智能
- GitHub 获 120k+star 的阿里内网“疯传”葵花宝典 JVM 虚拟机调优指南
- 震撼!阿里首次开源 Java 10万字题库,Github仅一天星标就超60K
- 浅析阿里数据技术架构(下)大规模分布式知识图谱
- 阿里云的大数据技术被用来守护马拉松选手的心脏
- 阿里技术行丨未来已来,新零售技术沙龙报名启动!
- 阿里再次“拔高”云业务 发布大数据平台
- 一道关于面向对象面试题所引发的血案(阿里)
- 阿里云将发布大数据平台
- 大数据成健康中国新机遇 阿里云”铺路”医疗技术革新
- 运维零成本 数据不丢失 阿里云OSS又放大招了
- 阿里云堪称贵州大数据产业“合伙人”
- 阿里数加大数据平台发布,将培养5万大数据科学家
- 阿里云大数据利器之-使用sql实现流计算做实时展现业务( flume故障转移版 )
- 教外谈(2):C/C++结合python实现阿里云盘数据同步
- 阿里亮相网络安全周 大数据共建生态安全