hadoop如何处理长时间运行不完成的map/reduce 任务?
2015-12-10 10:53
991 查看
如果某一个任务在某个节点上长时间不完成,怎么手动干预来处理这种情况?
董西成博客上找到的回答:
hadoop中有三种特殊的任务,failed task,killed task和speculative task.
其中,failed task是由于硬件、程序bug等原因异常退出的任务,比如磁盘空间不足等,
killed task是Hadoop主动将其杀死的任务,比如一个任务占用过多的内存,为了不影响其他作业的正常运行,
Hadoop需将这种恶心的任务杀死,以保证为所有作业提供一个“和谐”的任务执行环境。
failed task再次调度时不会在那些曾经失败的节点上运行,而killed task则可能被再次调度到任何一个节点上(包括曾经失败多的节点),
因此,如果你目测一个作业的任务运行很慢,你可以使用“bin/hadoop job -fail-task xxx”让这个任务换一个节点重新运行,
而不是使用“bin/hadoop job -kill-task xxx”。 speculative task是Hadoop针对那些慢任务(慢任务会拖慢一个作业的完成时间),
为他们额外启动一个备份任务,一起处理同一份数据,哪个先执行完,则采用哪个的处理结果,同时将另外一个任务杀死。
也就是说,推测执行是Hadoop对慢任务的一种优化机制(实际上就是“空间换时间”的经典优化思想),不属于容错调度范畴。
董西成博客上找到的回答:
hadoop中有三种特殊的任务,failed task,killed task和speculative task.
其中,failed task是由于硬件、程序bug等原因异常退出的任务,比如磁盘空间不足等,
killed task是Hadoop主动将其杀死的任务,比如一个任务占用过多的内存,为了不影响其他作业的正常运行,
Hadoop需将这种恶心的任务杀死,以保证为所有作业提供一个“和谐”的任务执行环境。
failed task再次调度时不会在那些曾经失败的节点上运行,而killed task则可能被再次调度到任何一个节点上(包括曾经失败多的节点),
因此,如果你目测一个作业的任务运行很慢,你可以使用“bin/hadoop job -fail-task xxx”让这个任务换一个节点重新运行,
而不是使用“bin/hadoop job -kill-task xxx”。 speculative task是Hadoop针对那些慢任务(慢任务会拖慢一个作业的完成时间),
为他们额外启动一个备份任务,一起处理同一份数据,哪个先执行完,则采用哪个的处理结果,同时将另外一个任务杀死。
也就是说,推测执行是Hadoop对慢任务的一种优化机制(实际上就是“空间换时间”的经典优化思想),不属于容错调度范畴。
相关文章推荐
- linux ubuntu解压tar.gz安装mysql
- Linux上Python的安装升级
- linux内存占用问题
- Linux 技巧:让进程在后台可靠运行的几种方法(转载)
- Linux 中 RPM包 安装 查询 卸载命令的总结
- opencv提供了多少个特征点的descriptor?
- CentOS开启coredump转储并生成core文件的配置
- linux 命令之 chage
- 让CentOS默认生成core dump 当前用户
- Linux服务器多端口配置
- nginx强制缓存
- OpcenCV+VS2015
- linux常用基本命令
- linux相关优化
- OpenCV2用均值漂移(Mean Shift)查找物体
- 网站统计中的数据收集原理及实现_埋点统计
- Centos6.5 卸载系统默认安装的jdk
- Linux DNS之一DNS相关基础概念
- Apache Commons工具集简介
- Linux 基础 —— YUM入门