在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核心资源无法利用。
当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核心资源无法利用。