Yarn模式下Apache HAWQ的运行

Posted 大数据社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yarn模式下Apache HAWQ的运行相关的知识,希望对你有一定的参考价值。

Apache HAWQ支持两种类型的资源管理模式,Standalone模式和Yarn模式。当Apache HAWQ集群在Standalone模式下运行时,会独占整个集群的资源而不去考虑其他共存的应用程序的资源使用需求。当Apache HAWQ集群在Yarn模式下运行时,Apache HAWQ会作为Yarn的一个应用程序动态地从Yarn申请资源,从而达到Apache HAWQ与其他Yarn应用程序弹性共存的效果。


用户可以通过以下几步操作使得Apache HAWQ能够在Yarn模式下运行:


1)Yarn资源管理器的设置


用户有多个可用的Yarn资源调度器可以选择,ApacheHAWQ对具体选择某个具体调度器不敏感。本例中我们选择 Capacity Scheduler资源调度器, 如下图,在yarn-site.xml 中设置Yarn资源管理器使用Capacity Scheduler。




Apache HAWQ需要独占地使用一个Yarn的queue。用户通过设置capacity-scheduler.xml来配置Capacity Scheduler中用于Apache HAWQ的queue。例如本例中,yarn.scheduler.capacity.root.queues设定了hawqqueue。后面两个capacity的参数设定的是Yarn为hawqqueue所预留的可使用资源的范围,本例中 为50%-100%,即Apache HAWQ默认使用50%资源,但可以最多使用100%的集群资源,设置yarn.scheduler.capacity.root.hawqqueue.user-limit-factor为2,允许Apache HAWQ使用超过Yarn的queue正常容量的资源


Yarn模式下Apache HAWQ的运行


2)Apache HAWQ的设置


用户通过配置Apache HAWQ master的hawq-site.xml配置Yarn服务器相关信息,这使得Apache HAWQ可以与Yarn服务器沟通获取Yarn集群资源,获取和归还Yarn的container等。首先设置hawq_global_rm_type为yarn来设置Apache HAWQ是在Yarn模式下运行。然后配置hawq_rm_yarn_queue_name指定Apache HAWQ使用Yarn的queue的名字。配置hawq_rm_yarn_app_name,可以设置Apache HAWQ作为Yarn的应用在Yarn资源管理器中显示的名字。配置hawq_rm_yarn_address为Yarn resource manger所在的host,hawq_rm_yarn_scheduler_address 同理。


Yarn模式下Apache HAWQ的运行

3)启动Apache HAWQ


接下来,启动Yarn和Apache HAWQ,通过yarn application -list命令查看在yarn注册的应用,可以看到Apache HAWQ作为一个application已连接到Yarn。


Yarn模式下Apache HAWQ的运行


执行sql语句“select * from testyarn left join testyarntmp on testyarn.d = testyarntmp.d and testyarn.d>=2 order by testyarn.d desc;”用yarn node -list 命令来 查看此刻Yarn的结点资源使用状况,每个结点上各分配了两个container(因为Apache HAWQ的资源水位设为2,Apache HAWQ会向Yarn的每个结点申请两个container)


Yarn模式下Apache HAWQ的运行


查看pg_resqueue_status表里资源队列的状态,可以看到Apache HAWQ queue pg_default分配了3072MB内存和1.5个vcore用于执行sql,每个虚拟segment的资源量是1024MB,所以一共有三个虚拟segment在使用中。


Yarn模式下Apache HAWQ的运行


执行完sql语句,过了一段没有工作负载的时间后, Apache HAWQ便将资源归还给Yarn,重新查看yarn node -list,可看到正在使用的container为0。


Yarn模式下Apache HAWQ的运行

通过pg_resqueue_status查看每个queue都没有资源在使用中。



本文演示了通过简单几步,使Apache HAWQ运行于Yarn模式,在有计算需求的情况下,Apache HAWQ会动态地按需向Yarn申请资源,在负载降低或者为空的情况下,Apache HAWQ会自动归还拥有的资源实现与其它Yarn应用程序的弹性共存和协作。


更多精彩内容,请关注大数据社区公共账号!

长按识别图片二维码


以上是关于Yarn模式下Apache HAWQ的运行的主要内容,如果未能解决你的问题,请参考以下文章

Apache Hawq-使用中遇到的问题和解决方法

纱线集群模式下的 Pyspark

剖析Apache HAWQ存储系统

Dockerize Apache HAWQ

Inspiration from Apache HAWQ

Inspiration from Apache HAWQ