container的生命周期
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的生命周期是这样的:
nm先去申请资源,然后是locallizing-downloading-localized->running-exit with failure(success)—>kill->clearnup
下图是我截自一个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,产生的文件不会被自动清理,需要我们手工清理,这也是需要注意的一件事情。
最新文章
- 如何利用脚本实现MySQL的快速部署以及一机多实例的部署
- Java性能调优
- Win7精简成功后的总结
- NGUI UIToggle
- android 给空白包签名
- android 中怎么保存当前按钮的状态?就是退出后重新进入还是上一次离开的状态
- iOS开发笔记系列-基础3(多态、动态类型和动态绑定)
- Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(一)
- 非常不错的MySQL优化的8条经验
- 关于OC和Swift使用GIT创建项目
- IBM openblockchain学习(四)--crypto源代码分析
- iOS 类似朋友圈的图片浏览器SDPhotoBrowser
- ASP.NET Core学习之四 在CentOS上部署.net core
- 【云计算 Hadoop】Hadoop 版本 生态圈 MapReduce模型
- HBase2实战:HBase Flink和Kafka整合
- Numpy 数组属性
- TCP简介(一)
- MySQL累积求和
- GTK 菜单的创建详解
- 《算法》第四章部分程序 part 10