CDH4.1.2
CentOS5.8
●Yarnのデコミッション手順
①excludeファイルにデコミッション対象ノードを追記(yarn-site.xmlで指定されたファイル)
hosts.exclude
②yarnでのrefreshNodes
・対象ノード:ResourceManagerサーバ
・実行コマンド:
yarn rmadmin -refreshNodes
・ウェブUIでnm確認
http://resoucemanager_server:8088/cluster/nodes
->"Decommissioned Nodes"のカウントが1になること
->上記カウント値をクリックし、"NodeAddress"に対象ノードが表示され、"NodeState"にDECOMMISSIONEDとなっていること
CLIでyarnのノードを確認できそうなコマンドがあったので試しましたが、
yarn node -list
CDH4.1.2には実装されてなく、CDH4.2からの実装でした。
●結論
手順的にはこれでよかったが、refreshNodesしたタイミングでNodeManagerのプロセスがダウンした。
いきなりプロセスダウンと違いがあるのか?と思い調べてみた。
まず、Gracefulな停止方法は今のところないらしい。
※ちなみに4.2でも同様にgracefulに停止はしない。
https://issues.apache.org/jira/browse/YARN-41
●プロセスダウンとデコミッションの違い
では、実際デコミッションするのといきなりNodeManagerのプロセスダウンで違いあるか?については、
デコミッションを行った場合、デコミッション対象ノードにおいて実行されていたコンテナは kill される。
2013-xx-xx 06:26:19,807 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceTrackerService: Disallowed NodeManager nodeId: ip-192-168-1-1:41600 hostname: ip-192-168-1-1:41600
2013-xx-xx 06:26:19,807 INFO org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeImpl: Deactivating Node ip-192-168-1-1:41600 as it is now DECOMMISSIONED
2013-xx-xx 06:26:19,807 INFO org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeImpl: ip-192-168-1-1:41600 Node Transitioned from RUNNING to DECOMMISSIONED
2013-xx-xx 06:26:19,807 INFO org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainerImpl: container_13659999900_0001_02_000003 Container Transitioned from RUNNING to KILLED
一方、もし通常のシャットダウンを行った場合、リソースマネージャはノードマネージャがダウンしたことに気づかない。
よって、投機的実行が行われるまでの若干の間、タスクの再アサインが遅れることになる。
と、若干の違いであるようだ。あまり気にしなくてよさそう。