手把手带你玩转HetuEngine:资源规划与数据源对接
本文分享自华为云社区《【手把手带你玩转HetuEngine】(三)HetuEngine资源规划》,作者: HetuEngine九级代言 。
HetuEngine支持在服务层角色实例和计算实例两个维度进行资源规划,并且支持在高并发场景下通过启动多个计算实例进行负载分担和均衡,从而满足各种业务场景下的资源规划需求。
一、HetuEngine角色实例资源规划
HetuEngine能够通过服务层对计算实例进行服务化管理,服务层的角色实例包括HSBroker、HSConsole、HSFabric、QAS。
可以通过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节点上的。
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,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资源。
队列资源规划配置示例
计算实例规模估算
根据业务数据量大致估算计算实例worker的大小和数量
Yarn参数、计算实例内存配置
Yarn参数调整
调整yarn上container最大核数和最大内存相关参数以满足计算实例估算规模大小要求,在yarn服务级别进行修改
计算实例内存调整
HetuEngine的配置(建议CN和Worker配置保持一致):具体修改点如下图所示,在HSConsole页面,选择计算实例,点击"配置",即可在弹出窗口按下图修改:
3. 高并发下多实例配置推荐
单HetuEngine计算实例的并发建议低于50,高并发场景下建议启动多个计算实例进行负载分担避免性能明显下降。HetuEngine支持两种方式启动多计算实例,一是单租户单实例的模式,二是单租户多实例的模式。
方式1: 单租户单实例的部署模式。
可将资源分成多个资源池,每个租户独占一个资源池,每个租户启动一个计算实例的方式进行部署。例如将资源分成default、online、offline 3个资源池,分别给default、online、offline三个租户使用,每个租户启动一个计算实例,不同的业务将提交到不同的资源队列:
方式2:单租户多实例的部署模式。
320版本后,HetuEngine支持通过配置在单个租户内启动多个计算实例,如下图所示,不同的业务都提交到同一租户中的队列,HetuEngine能够自动实现单租户内的各个计算实例均衡负载。
二、HetuEngine数据源对接
HetuEngine能够支持跨源(多种数据源,如Hive,HBase,GaussDB(DWS),Elasticsearch,ClickHouse等),跨域(多个地域或数据中心)的快速联合查询,尤其适用于Hadoop集群(FusionInsight MRS)的Hive、Hudi数据的交互式快速查询场景。本章将对HetuEngine的数据源对接能力与操作实践进行介绍。
数据源对接概述
当前HetuEngine数据源对接支持以下几种能力:
1.支持对接Hive、HBase、GaussDB(DWS),Elasticsearch,ClickHouse、Hudi、IoTDB等多种数据源,并支持对接跨域HetuEngine
2.支持多种数据源的快速联合查询并提供可视化的数据源配置、管理页面,用户可通过HSConsole界面快速添加数据源,并进行差异化配置
3.数据源动态生效,无需重启计算实例
4.支持数据源下推
多数据源对接
当前版本HetuEngine支持对接的数据源如表1所示
可视化数据源管理界面
HetuEngine能够支持多种数据源的快速联合查询并提供可视化的数据源配置、管理页面,用户可通过HSConsole界面快速添加数据源,并进行差异化配置。操作示例如下图所示

可以通过最下方“自定义配置”添加相应数据源的自定义配置

数据源动态生效
在HSConsole界面或者使用HSConsole Rest API对数据源的添加、配置、删除等操作支持动态生效,无须重启计算实例。
数据源动态生效时间默认为60秒。如需修改动态生效时间,在计算实例自定义配置添加如下参数,例如:
catalog.scanner-interval =120s
数据源计算下推
HetuEngine支持查询下推(pushdown),它能把查询,或者部分查询,下推到连接的数据源。这意味着特殊的谓词,聚合函数或者其它一些操作,可以被传递到底层数据库或者文件系统进行处理。查询下推能带来以下好处:
提升整体的查询性能。
减少HetuEngine和数据源之间的网络流量。
减少远端数据源的负载。
HetuEngine对查询下推的具体支持情况,依赖于具体的Connector,以及Connector相关的底层数据源或存储系统。
手把手带你玩转HetuEngine:资源规划与数据源对接的更多相关文章
- Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战
转: Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战 Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一 ...
- 手把手带你玩转Linux
今天这篇文章带你走进Linux世界的同时,带你手把手玩转Linux,加深对Linux系统的认识. 一.搞好Linux工作必须得不断折腾,说白了,只是动手力量必须强.我在初学Linux的那片,家中三台计 ...
- Android 手把手带你玩转自己定义相机
本文已授权微信公众号<鸿洋>原创首发,转载请务必注明出处. 概述 相机差点儿是每一个APP都要用到的功能,万一老板让你定制相机方不方?反正我是有点方. 关于相机的两天奋斗总结免费送给你. ...
- 手把手带你玩转 DialogFragment
前言 本文已经收录到我的 Github 个人博客,欢迎大佬们光临寒舍: 我的 GIthub 博客 思维导图 一.为什么要学习 DialogFragment 你还在用 Dialog 吗? 你还在经常烦恼 ...
- 手把手教你玩转 CSS3 3D 技术
css3的3d起步 要玩转css3的3d,就必须了解几个词汇,便是透视(perspective).旋转(rotate)和移动(translate).透视即是以现实的视角来看屏幕上的2D事物,从而展现3 ...
- 手把手教你玩转CSS3 3D技术
手把手教你玩转 CSS3 3D 技术 要玩转css3的3d,就必须了解几个词汇,便是透视(perspective).旋转(rotate)和移动(translate).透视即是以现实的视角来看屏幕上 ...
- 完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三
手把手叫你玩转网络编程系列之三 完毕port(Completion Port)具体解释 ...
- 带你玩转Visual Studio
带你玩转Visual Studio 带你新建一个工程 工程目录下各文件的含义 解决方案与工程 在这之前先了解一个概念:解决方案与工程. 解决方案(Solution):一个大型项目的整体的工作环境: 工 ...
- wing带你玩转自定义view系列(1) 仿360内存清理效果
本篇是接自 手把手带你做自定义view系列 宗旨都是一样,带大家一起来研究自定义view的实现,与其不同的是本系列省去了简单的坐标之类的讲解,重点在实现思路,用简洁明了的文章,来与大家一同一步步学习. ...
- Android性能优化:手把手带你全面实现内存优化
前言 在 Android开发中,性能优化策略十分重要 本文主要讲解性能优化中的内存优化,希望你们会喜欢 目录 1. 定义 优化处理 应用程序的内存使用.空间占用 2. 作用 避免因不正确使用内 ...
随机推荐
- 非全自研可视化表达引擎RuleLinK可视化之路
导读 上一篇<非全自研可视化表达引擎-RuleLinK>介绍了RuleLink的V1.0版本,虽说一定程度上消除了一些配置相关的样板式代码,也肉眼可见的消除了一些研发资源的浪费:RuleL ...
- 研发日常踩坑-Mysql分页数据重复
踩坑描述: 写分页查询接口,order by和limit混用的时候,出现了排序的混乱情况 在进行第N页查询时,出现与第一前面页码的数据一样的记录. 问题 在MySQL中分页查询,我们经常会用limit ...
- windows开发环境备份,再也不怕重装系统了
每次重装系统后,都要重新安装软件,配置环境变量,极为繁琐.故作环境环境变量备份,常用软件恢复记录,前提是你的软件要安装在非系统盘,D/E盘等 软件安装在非系统盘 开发软件安装在非系统盘,建好目录.重装 ...
- KL-Divergence KL散度
KL散度(KL-divergence) 直观解释:KL 散度是一种衡量两个分布(比如两条线)之间的匹配程度的方法. 需要解决的问题:已知数据太大,逍遥使用较小的信息表示已知数据.用某种已知分布来表示真 ...
- 【问题复盘】在Ubuntu 20.04下安装OFED驱动
复盘:在Ubuntu 20.04下安装OFED驱动 起因 最近收到两台服务器,都搭载了ConnectX-5 EX网卡.由于供应商预装了Ubuntu 20.04操作系统,而我们的后端代码也是基于Ubun ...
- 一个基于.NET7的开源DNS服务 DnsServer 的部署使用经验分享
前言 接上篇 docker-bind 的使用搭建了一个 dns 服务,本篇将介绍另外一款 DnsServer 的部署和使用,更专注,更轻量. 特点 基于 .NET 7 实现 ,支持 Windows.L ...
- 一篇适合躺收藏夹的 Nexus3 搭建 NuGet&Docker 私有库的安装使用总结
前言 Nexus 是支持 Nuget.Docker.Npm 等多种包的仓库管理器,可用做私有包的存储分发,缓存官方包.本篇将手把手教学使用 Nexus 搭建自己的 NuGe t& Docker ...
- 【Windows 开发环境配置】NVIDIA 篇
CUDA 从CUDA Toolkit Archive下载相应版本的离线安装包,这里以11.7为例. 打开安装包,在安装选项选择自定义模式,点击下一步. 在自定义安装选项中,仅选择CUDA组件(其中Ns ...
- STL deque容器
deque - 双向队列 1.队列的基本知识 队列的基本特性就是先进先出(FIFO),也就是第一个进去的元素第一个出来.即队列就是一个只允许在一端进行插入,在另一端进行删除操作的线性表.Queue接口 ...
- Android 11 使用 BroadcastReceiver 监听短消息
使用装有MIUI系统的小米手机,静态注册的广播接收器监听短消息. 在AndroidManifest.xml中声明权限 <uses-permission android:name="an ...