使用YARN
如果OushuDB和YARN配合使用,OushuDB可以從YARN申請資源,并把申請到的資源通過資源管理隊列重新在查詢之間配置設定。在不使用資源的時候會把資源動态歸還給YARN。
你可以在hawq-site.xml中修改如下配置使之生效。
<property><name>hawq_global_rm_type</name><value>yarn</value></property>
hawq_global_rm_type預設值為none,指的是standalone模式。
配置為YARN模式後,你需要同時配置hawq-site.xml中的下面參數:
<property><name>hawq_rm_yarn_address</name><value>localhost:8032</value></property><property><name>hawq_rm_yarn_scheduler_address</name><value>localhost:8030</value></property><property><name>hawq_rm_yarn_queue_name</name><value>hawqque</value></property><property><name>hawq_rm_yarn_app_name</name><value>hawq</value></property>
如果你配置了YARN HA,你必須在$GPHOME/etc/yarn-client.xml中配置如下屬性:
● yarn.resourcemanager.ha
● yarn.resourcemanager.scheduler.ha
例如:
<property><name>yarn.resourcemanager.ha</name><value>{0}:8032,{1}:8032</value></property><property><name>yarn.resourcemanager.scheduler.ha</name><value>{0}:8030,{1}:8030</value></property>
配置HA後,hawq_rm_yarn_address和hawq_rm_yarn_scheduler_address不再被使用。
當使用OushuDB YARN內建時,OushuDB隻支援YARN CapacityScheduler。下面是YARN的一個典型配置:
# yarn-site.xml<property><name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value></property><property><name>yarn.nodemanager.resource.memory-mb</name><value>4GB</value></property><property><name>yarn.nodemanager.resource.cpu-vcores</name><value>1</value></property>
yarn-site.xml配置了CapacityScheduler,并且配置了一個YARN container的記憶體和CPU大小。我們建議YARN container的 大小使用1GB/core,2GB/core或者4GB/core。這樣的話可以減少碎片的出現。
# capacity-scheduler.xml<property><name>yarn.scheduler.capacity.root.queues</name><value>mrque1,mrque2,hawqque</value></property><property><name>yarn.scheduler.capacity.hawqque.maximum-applications</name><value>1</value></property><property><name>yarn.scheduler.capacity.hawqque.capacity</name><value>20</value></property><property><name>yarn.scheduler.capacity.hawqque.maximum-capacity</name><value>80</value></property><property><name>yarn.scheduler.capacity.hawqque.user-limit-factor</name><value>2</value></property><property><name>yarn.scheduler.capacity.mrque1.capacity</name><value>30</value></property><property><name>yarn.scheduler.capacity.mrque1.maximum-capacity</name><value>50</value></property><property><name>yarn.scheduler.capacity.mrque2.capacity</name><value>50</value></property><property><name>yarn.scheduler.capacity.mrque2.maximum-capacity</name><value>50</value></property>
上面的例子中配置了3個YARN資源管理隊列:mrque1,mrque2,hawqque。
在YARN模式下,OushuDB本身的資源管理隊列的用法不變。使用者依然可以安裝前面幾節的方法使用OushuDB資源隊列。變得是OushuDB得到資源的方式。在Standalone模式下,OushuDB假設擁有整個叢集資源,而在YARN模式下,OushuDB配置設定的資源需要從YARN申請。