container的生命周期
2015-12-08 08:22
417 查看
Container启动过程主要经历三个阶段:资源本地化、启动并运行container、资源回收,其中,资源本地化指创建container工作目录,从HDFS下载运行container所需的各种资源(jar包、可执行文件等)等,而资源回收则是资源本地化的逆过程,它负责清理各种资源,它们均由ResourceLocalizationService服务完成的。启动container是由ContainersLauncher服务完成的,而运行container是由插拔式组件ContainerExecutor完成的,YARN提供了两种ContainerExecutor实现,一种是 DefaultContainerExecutor,另一种是LinuxContainerExecutor。(http://dongxicheng.org/mapreduce-nextgen/yarnmrv2-node-manager-container-setup-process/)
其实这些内容可以在nodemanager进程的日志中看到。container的生命周期是这样的:
启动Container是由ContainersLauncher完成的,该过程主要工作是将运行container对应的完整shell命令写到私有目录下的launch_container.sh中,并将token文件写到container_tokens中。之所以要将container运行命令写到launch_container.sh中,然后通过运行shell脚本的形式运行container,主要是因为直接执行命令可能会有些特殊符号不识别。
2015-12-04 17:09:11,395 INFO org.apache.hadoop.mapred.ShuffleHandler: Added token for job_1448915696877_6244
2015-12-04 17:09:11,396 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1448915696877_6244_01_000160 transitioned from LOCALIZING to LOCALIZED
2015-12-04 17:09:11,438 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1448915696877_6244_01_000160 transitioned from LOCALIZED to RUNNING
2015-12-04 17:09:11,451 INFO org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: launchContainer: [nice, -n, 0, bash,
/data4/ochadoop/pseudo-dist/yarn/local/usercache/ochadoop/appcache/application_1448915696877_6244/
container_1448915696877_6244_01_000160/default_container_executor.sh]
像这些被kill掉的container,产生的文件不会被自动清理,需要我们手工清理,这也是需要注意的一件事情。
其实这些内容可以在nodemanager进程的日志中看到。container的生命周期是这样的:
nm先去申请资源,然后是locallizing-downloading-localized->running-exit with failure(success)—>kill->clearnup
下图是我截自一个container在本地执行失败的图,它被kill啦,发生了系统转储,可以看到有javacore,core dump,trc 和heapdump等文件。
下图是我截自一个container在本地执行失败的图,它被kill啦,发生了系统转储,可以看到有javacore,core dump,trc 和heapdump等文件。
启动Container是由ContainersLauncher完成的,该过程主要工作是将运行container对应的完整shell命令写到私有目录下的launch_container.sh中,并将token文件写到container_tokens中。之所以要将container运行命令写到launch_container.sh中,然后通过运行shell脚本的形式运行container,主要是因为直接执行命令可能会有些特殊符号不识别。
2015-12-04 17:09:11,395 INFO org.apache.hadoop.mapred.ShuffleHandler: Added token for job_1448915696877_6244
2015-12-04 17:09:11,396 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1448915696877_6244_01_000160 transitioned from LOCALIZING to LOCALIZED
2015-12-04 17:09:11,438 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1448915696877_6244_01_000160 transitioned from LOCALIZED to RUNNING
2015-12-04 17:09:11,451 INFO org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: launchContainer: [nice, -n, 0, bash,
/data4/ochadoop/pseudo-dist/yarn/local/usercache/ochadoop/appcache/application_1448915696877_6244/
container_1448915696877_6244_01_000160/default_container_executor.sh]
像这些被kill掉的container,产生的文件不会被自动清理,需要我们手工清理,这也是需要注意的一件事情。
相关文章推荐
- Daily Scrum NO.1
- 深层剖析企业为何和如何重新选型邮件系统
- ubuntu14.04交叉编译ffmpeg出现unable to create an executable file. C compiler test failed.
- Scala trait介绍
- crossDomain、allowDomain()、allowScriptAccess三者的关系
- 使用SVN clang: error: linker command failed with exit code 1 (use -v to see invocation)
- 详解Linux内核红黑树算法的实现 http://blog.csdn.net/npy_lp/article/details/7420689
- int main (int argc,char *argv[])和int mian()
- 2015(1108-1207)_AidanDai
- 人工智能:第四章 计算智能(1)
- 人工智能:第三章 搜索推理技术
- Exists/In/Any/All/Contains操作符
- 人工智能:第二章 知识表示方法
- 人工智能:第一章 绪 论
- C++的运算符重载 http://blog.csdn.net/zgl_dm/article/details/1767201
- C++运算符重载http://blog.csdn.net/wangfengwf/article/details/11580653
- win7 报错 failed to install servicefailed installing
- opencv_traincascade的使用学习
- 对话屏幕Dynpro(SE51) 屏幕元素 屏幕属性 PAI事件的触发、屏幕元素Function Code设置 屏幕流逻辑Screen Flow Logic 对话屏幕中的字段命名大小写问题
- POJ 1273 Drainage Ditches