HAWQ资源管理

在Hadoop集群中,资源通常通过yarn进行管理。yarn为MapReduce作业与其他应用程序分配资源。资源被分配在称为容器的单元中。在HAWQ环境中,segment和node manager控制资源的利用,并执行资源限制。


当Hadoop集群中运行HAWQ时,在yarn中HAWQ作为应用程序注册。HAWQ的资源管理器与yarn通信以获取资源或者释放资源。


资源队列是管理HAWQ系统中管理并发度的主要工具。资源队列是一个数据库对象使用 CREATE RESOURCE QUEUE SQL语句创建。您可以管理同时执行的查询的数量,以及每种类型查询的最大内存量和CPU使用率。资源队列还可以防止占用太多资源从而降低整个系统性能。


在内部,HAWQ基于分层资源队列系统动态地管理其资源。HAWQ使用资源队列来有效地分配资源运行查询。


HAQ资源队列


当HAWQ被初始化时,有一个根队列PGBROOT和一个名称pg_default的队列。如果配置 yarn,HAWQ的资源管理器将拥有根队列的容量。创建新资源队列时,必须指定父队列。从而资源队列组织成树。


执行查询时经过查询分析和语义分析之后,优化器与HAWQ资源管理器协调查询的资源使用,并产生查询可用资源的最优计划。查询资源信息与查询计划一起发送到segment。这样查询执行器(QE)可以根据资源配额控制资源使用情况。当查询完成或取取消。资源返还给HAWQ资源管理器。


关于分支队列和叶队列


在该图中分层资源队列树中,有分支队列(虚线矩形)和叶队列(用实线矩形)。只有叶队列可以与角色关联执行查询。




资源分配策略


分配资源时,HAWQ遵循以下几个原则:


资源只分配给运行状态或查询状态的队列
当队列资源忙时,资源管理器根据队列容量平衡队列之间的资源。
在同一资源队列中,当多个查询等待时,最大化均匀分布查询。


资源限制




集群内存与cpu比率


HAWQ资源管理器使用内存与cpu的比来资源分配,资源管理器选择尽可能小的比率,以尽量减少资源浪费。


HAQ自动调整segment资源匹配该比率。例如,如果1GB内存,1core 作为比率,那么5GB内存和8core的segment将有3个core浪费。如果segement有12GB和10个内核,那么2GB的内存将不会被使用


在重新启动HAWQ主节点之前,该比率能改变。因此,基于该比率对于动态添加到集群的segement的内存和core资源进行调整。


HAWQ主数据库日志会显示该比率消息:


资源管理器选择每个核心的1024 MB作为集群的资源率,有3072 MB内存0核心资源无法利用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值