1. 程式人生 > >SpringXD on yarn 使用Container工作組

SpringXD on yarn 使用Container工作組

SpringXD on Yarn支援Container分組。可以更好的控制admin和container分配。

  • 控制組內成員
  • 以組單位整體控制生命週期
  • 動態建立組
  • 重啟失敗的容器

實際上,XD on Yarn有內建分組admin和container。結合例子使用:

檢視分組列表:

bin/xd-yarn clustersinfo -a application_1472450074786_0160
  CLUSTER ID
  ----------
  container
  admin

建立新的分組

bin/xd-yarn clustercreate -a application_1472450074786_0160 -c
lihongzhe -i container-nolocality-template -p default -w 2 Cluster lihongzhe created.

檢視分組列表

bin/xd-yarn clustersinfo -a application_1472450074786_0160
  CLUSTER ID
  ----------
  container
  lihongzhe
  admin

啟動分組

bin/xd-yarn clusterstart -a application_1472450074786_0160 -c lihongzhe

檢視分組狀態

bin/xd-yarn clusterinfo -a
application_1472450074786_0160 -c lihongzhe -v CLUSTER STATE MEMBER COUNT ANY PROJECTION HOSTS PROJECTION RACKS PROJECTION ANY SATISFY HOSTS SATISFY RACKS SATISFY ------------- ------------ -------------- ---------------- ---------------- ----------- ------------- ------------- RUNNING 2 2 {}
{} 0 {} {}

可見,啟動後,分組變成RUNNING態。此時Yarn上會新啟動Container(原來是6)。

XD的Container也會隨之啟動

進一步,體驗向yarn申請指定資源的container,並將job部署到指定的container上執行,達到資源的動態控制。

1、配置資源申請模板

xd中,container預設申請記憶體為512MB,這裡修改server.yml配置檔案,改成256MB

xd:
  appmasterMemory: 512M
  adminServers: 1
  adminMemory: 512M
  adminJavaOpts: -XX:MaxPermSize=128m
  adminLocality: false
  containers: 3
  containerMemory: 256M
  containerJavaOpts: -XX:MaxPermSize=128m
  containerLocality: false

push並submit新版本

bin/xd-yarn push
bin/xd-yarn submmit

再次建立並啟動名為lihongzhe-256的分組,包含一個容器

bin/xd-yarn clustercreate -a application_1472450074786_0186 -c lihongzhe-256 -i container-nolocality-template -p default -w 1 -g lihongzhe-256
bin/xd-yarn clusterstart -a application_1472450074786_0186 -c lihongzhe-256

從yarn上檢視新建立的容器狀態

可見確實申請了256MB大小的container。

xd admin-ui上來看

然後通過指定groupid將任務部署到該container上去

xd:>job deploy --name jobsleepend --properties "module.sleepend.criteria=groups.equals('lihongzhe-256')"

job跑在了指定的container上。