课程视频回顾:
开源项目交流群:30537511(钉钉)
开源项目地址:
上期,偷天老师为我们介绍了Taier的入门,本期月白老师将围绕Taier的控制台为大家做介绍。控制台是Taier中的集群配置中心,通过控制台Taier可以实现不同集群环境的对接,在每个集群下配置不同的类型组件,再去开发对应的任务
通过控制台,Taier实现了多集群、多租户的特性。
Taier控制台功能介绍
进入Taier之后,首先需要去控制台配置集群,配置完集群之后,需要再将租户和集群绑定才能进行任务开发。控制台的功能主要包括以下三个模块:
多集群管理
控制台上支持配置多套集群环境,集群下配置不同的计算组件也可以通过不同的计算组件,来实现不同类型任务的提交。
此功能发挥着配置中心的作用,只有将对应的集群信息配置到控制台集群中,任务才能知道提交到那个集群环境。
资源管理
资源管理展示的作用是展示集群计算节点的内存、核数使用情况以及租户和集群的绑定关系,帮助用户更好地确定资源配置使用情况。
此功能有效的帮助Taier实现租户隔离,在Taier的设计之初,最早明确下来的几个理念之一就是多租户多集群隔离,这一点在Taier中,就是通过租户和集群的相互绑定来实现的。
队列管理
队列管理负责协调的是集群下不同节点下的任务状态,用户可以对其进行手动操作。
其主要作用在于提交参数,任务提交的参数信息都是从控制台对应的组件获取并构建。
Taier控制台设计
讲解完控制台的作用,接下来为大家分享控制台的设计思路,Taier控制台的设计主要围绕以下这几点来进行介绍:
组件化
1、组件结构逻辑
由于不同环境的信息不一致,日常的任务信息处理需要通过配置多个集群(Cluster)来区分信息来源。每个集群下组件按照功能可以划分为公共组件、资源调度组件、存储组件、计算组件这四种功能组件,同一功能组件下又可以按照不同的类型做更细化的区分,架构的设计就是这样从整体到局部一层层实现的。
四个功能组件主要作用是:
-
公共组件(Common Part):公共组件通用实现逻辑
-
资源调度组件(Resource Part):资源调度组件通用实现逻辑
-
存储组件(Store Part):存储组件通用实现逻辑
-
计算组件(Compute Part):计算组件通用实现逻辑 ,包括:
DependComputePart:依赖资源组件和存储组件的计算组件通用实现逻辑如:Flink、Spark等计算组件
SingleComputePart:不依赖任何其他组件的计算组件如:OceanBase、TiDB等计算组件
2、组件实现逻辑
组件的实现逻辑包含以下几个方面:
-
组件的对应的唯一类型枚举值
-
组件对应的具体版本
-
组件的模板参数
-
组件对应plugin名称
-
组件依赖的资源组件
-
组件额外的版本参数
插件化
组件如何去对应一个插件版本,以版本为Apache Hadoop2组件插件为例,具体命令操作可以在课程回放中查看,插件文件能在下面这个文件夹中找到:
Taier控制台规划
简单化
Taier设计的核心思想一直是「轻量易用」。为了达到这个目标,我们未来将采取一系列举措,例如优化计算组件和任务之间的关联关系,让自定义开发任务更加简单;还有基于OceanBase提供开发自定义组件、任务、plugins插件教程,最大化减轻用户学习操作负担。
我们也将通过优化,让组件配置的参数更加简单。目前控制台的计算组件参数大部分为Taier自定义参数,后续我们将对控制台计算组件的参数加入参数说明,优化的努力方向是用户能在配置计算组件时做到对配置进程实时知晓。
易扩展
我们还计划降低对自定义任务类型开发的难度。新增除了Hadoop以外的其他计算组件,如OceanBase、TiDB扩展分布式数据库的任务类型等。
具体是这五个方面的具体安排:
1.实现自定义组件的类型定义
2.实现自定义组件的模版参数定义
3.开发自定义插件
4. 开发自定义任务
5.自定义任务运维中心信息展示
扩展k8s支持
目前控制台的资源调度组件默认仅支持Yarn, 无法快速使用Chunjun On Kubernetes ,后续我们的资源调度组件将会扩展k8s的插件支持,降低任务运行的环境上手难度。
以上就是Taier控制台的基本介绍和未来的一些规划方向,也欢迎大家来一起交流讨论,数栈希望和大家一起成长。