【手把手带你玩转HetuEngine】(三)HetuEngine资源规划
前言
前面已经介绍了HetuEngine是什么以及应用场景与案例,想必读者对HetuEngine已经有了一个初步的了解,本篇文章将手把手带你进行集群部署和资源规划,开启玩转HetuEngine第一步。
HetuEngine支持在服务层角色实例和计算实例两个维度进行资源规划,并且支持在高并发场景下通过启动多个计算实例进行负载分担和均衡,从而满足各种业务场景下的资源规划需求。
一、HetuEngine角色实例资源规划
HetuEngine能够通过服务层对计算实例进行服务化管理,服务层的角色实例包括HSBroker、HSConsole、HSFabric、QAS。
角色名 |
部署节点类型 |
推荐部署个数 |
关键GC参数默认值 |
功能 |
HSBroker |
管理节点、控制节点 |
2 |
-Xms2G -Xmx2G |
HetuEngine的服务管理,用作计算实例的资源管理校验,健康监控与自动维护等。 |
HSConsole |
管理节点、控制节点 |
2 |
-Xms2G -Xmx2G |
对外提供数据源信息管理,计算实例管理,自动化任务的查看等功能的可视化操作界面和RESTful接口。 |
HSFabric |
管理节点、控制节点、数据节点 |
1(配置两个时支持高可用) |
-Xms2G -Xmx2G |
提供SQL统一访问入口及跨域(DC)高性能安全数据传输。 |
QAS |
管理节点、控制节点 |
2 |
-Xms4G -Xmx4G |
HetuEngine的自研模块,针对SQL执行历史记录提供自动感知、自动学习、自动诊断服务,提升在线SQL运维能力,自动加速在线SQL分析任务。 |
可以通过HetuEngine服务层配置对实例参数进行调整,如下图所示。
二、计算实例资源规划
HetuEngine的计算实例是一个运行在Yarn容器内的基于内存的计算引擎,它一般包含1~2个Coordinator和N个worker,其中Coordinator是管理节点,提供SQL接收、SQL解析、生成执行计划、执行计划优化、分派任务和资源调度等能力,如果需要计算实例支持高可用,必须部署两个Coordinator。Worker是工作节点,提供数据源数据并行拉取,分布式SQL计算等能力。从8.2.1版本开始,HetuEngine支持单租户多计算实例的形态。
Yarn的租户队列、HetuEngine计算实例、计算实例的Coordinator 和 Worker 之间的关系如下图所示:
Yarn资源池分配示意图(AM为Yarn的应用管理器)
HetuEngine支持在HSConsole界面对计算实例进行管理,并且能够对每个计算实例进行差异化配置,如下图所示
并且支持在创建计算实例的时候添加计算实例级别的自定义参数配置:
三、HetuEngine计算实例选型与内存配置建议
HetuEngine的计算实例作为SQL查询引擎,是一个纯内存的计算引擎。因此,从性能的角度考虑,需要给计算实例尽可能多的内存资源。
由于HetuEngine的计算实例是onYarn模式,Coordinator和Worker都是运行在Yarn的NodeManager节点上的。
1. coordinator & worker资源配置推荐
Coordinator建议部署的节点为2个,Worker按实际资源情况部署。
• Coordaintor和Worker的内存值配置要求为:
1. 要求yarn.scheduler.maximum-allocation-mb > coordaintor/worker容器内存 > JVM内存。
2. 建议yarn.scheduler.maximum-allocation-mb内存为节点物理内存的90%,coordaintor/worker容器内存比yarn.scheduler.maximum-allocation-mb至少少2GB,JVM内存为coordaintor/worker容器内存比大小的80%。
3. 建议一个节点启动一个conatiner的形式部署,避免产生内存碎片从未造成资源浪费。
4. coordaintor和worker+AM所用到的内存资源不能超出该租户的可使用最大内存资源。
• Coordaintor和Worker的CPU值配置要求为:
1. yarn.scheduler.maximum-allocation-vcores 大于coordaintor和worker的vcore。
2. 建议coordaintor和worker的vcore的值比yarn.scheduler.maximum-allocation-vcores的值少2~10个。
3. coordaintor和worker+AM所用到的core资源不能超出该租户的可使用最大core资源。
2. 队列资源规划配置示例
计算实例规模估算
根据业务数据量大致估算计算实例worker的大小和数量
Yarn参数、计算实例内存配置
- Yarn参数调整
调整yarn上container最大核数和最大内存相关参数以满足计算实例估算规模大小要求,在yarn服务级别进行修改
- 计算实例内存调整
HetuEngine的配置(建议CN和Worker配置保持一致):
具体修改点如下图所示,在HSConsole页面,选择计算实例,点击"配置",即可在弹出窗口按下图修改:
3. 高并发下多实例配置推荐
单HetuEngine计算实例的并发建议低于50,高并发场景下建议启动多个计算实例进行负载分担避免性能明显下降。HetuEngine支持两种方式启动多计算实例,一是单租户单实例的模式,二是单租户多实例的模式。
方式1: 单租户单实例的部署模式。
可将资源分成多个资源池,每个租户独占一个资源池,每个租户启动一个计算实例的方式进行部署。例如将资源分成default、online、offline 3个资源池,分别给default、online、offline三个租户使用,每个租户启动一个计算实例,不同的业务将提交到不同的资源队列:
方式2:单租户多实例的部署模式。
321版本后,HetuEngine支持通过配置在单个租户内启动多个计算实例,如下图所示,不同的业务都提交到同一租户中的队列,HetuEngine能够自动实现单租户内的各个计算实例均衡负载。
- 点赞
- 收藏
- 关注作者
评论(0)