阿里ODPS架构与SQL过程

ODPS架构图

阿里ODPS架构与SQL过程_第1张图片

整个ODPS分为
1. 客户端层
本层体现为用户使用的客户端:java/python soft develop kits、command line interface、Integrated Development Environment、这些工具都是对底层REST API的封装,最后的操作都是在调用底层的API函数。用户通过这些工具实现对ODPS资源的ETL操作,以及对ODPS的状态、权限等事项的管控。
2. 接入层
本层体现为各种路由、交换机以及http servers。负责用户认证、将用户们发来的请求发送到服务器中。
  a.先通过LVS负载均衡将用户请求转发到服务器集群上去。
  b.再在服务器上将用户请求转发到云账户认证服务器做AccessId校验以及消息校验。验证通过后返回用户accountID信息给服务器集群,集群再将请求详细发给逻辑层。

3. 逻辑层
本层为ODPS分布式处理软件的各个模块。主要包括SQL Planner、Worker(请求处理器)、Scheduler(调度器)、Executor(作业执行管理)、MetaStore(元数据表示)。
  a.Worker负责处理请求的接入、本地用户空间|表|资源|任务状态信息等的查询管理、将SQL、MR等分布式计算任务提交给Scheduler。
  b.Scheduler负责查询集群的内存、CPU等状态以便实现对Instance的调度。Instance就是用户的一次请求,一个Instance会被分解成多个小task组成的DAG工作流,可以被执行的小tasks会被放在taskPool中,并结合资源状况计算优先级排序。(类似YARN:resource manager)
  c.tasker聚集的资源达到要求时,向taskPool申请一个task,生产并将‘task描述文件.xml’提交给下一层:计算层。还要监控tasks的running status并返回给Scheduler。

4. 存储/计算层
  a.‘盘古’文件存储系统的存储形式CFile
阿里ODPS架构与SQL过程_第2张图片
   文件中的一列可以存在多个block里,一个block最多64M且存储的都是同一类型数据,这是为了方便数据压缩。
   索引区中指明了每个文件中各个列对应的block存储位置,以及存储在该block中的数据个数。
   元信息区汇总用户文件中各个列的基本信息。
  b.选用OTS实现元数据的快速读写,水平扩容与资源隔离。

阿里ODPS架构与SQL过程_第3张图片

你可能感兴趣的:(大数据)