Haoop Mapreduce 中的FileOutputFormat类
2024-09-08 02:24:43
FileOutputFormat类继承OutputFormat,需要提供所有基于文件的OutputFormat实现的公共功能,主要有以下两点:
(1)实现checkOutputSpecs方法
checkOutputSpecs方法一般在作业被提交到JobTracker之前,由JobClient自动调用,以检查输出目录是否存在,如果目录存在则抛出异常,以防止之前的数据被覆盖。
(2)处理side-effect file
任务的side-effect file并不是任务的最终输出文件,而是具有特殊用途的任务专属文件。其典型应用是时执行推测式任务。在Hadoop中,因为硬件老化、网络故障等问题,同一个作业可能会因为某些任务的执行速度影响其他任务,导致拖慢整个作业的整体速度。所以Hadoop会在另外一个节点上启动同一个相同的任务,该任务被称为推测式任务,最先完成的任务的计算结果便是这块数据对应的处理结果。为了防止两个任务输出到同一个文件时产生冲突,FileOutputFormat会为每个Task的数据创建一个side-effect file,当Task完成后,再移动到最终输出目录。
默认情况下,当作业成功执行后,会在最终结果目录下生成空文件_SUCCESS。该文件主要为高层应用提供作业运行完成的标识,比如,Oozie需要通过检测结果目录下是否存在该文件判断作业是否运行完成。
最新文章
- 守护进程demon.c
- 开源协议:LGPL协议、OSGi协议---打酱油的日子
- React Native01-开始 Windows环境安装配置篇
- 60. Insert Interval &;&; Merge Intervals
- php---分组函数group_concat()
- zw版【转发·台湾nvp系列Delphi例程】HALCON SetMshape
- 160907、CSS 预处理器-Less
- ExtJS MVC结构
- lca 最近公共祖先
- jquery - ul li click 无响应
- 移动app的一些心得
- keepalived问题
- JSP慕课网之Session
- 增加AP INVOICE 行&;分配行
- URL和URL比较
- mybatis-高级结果映射之一对多
- OpenStack-Neutron-安全组
- SQL[Err]ORA-00XXX: missing 相关
- vue之文本渲染
- Result映射成对象和List
热门文章
- 怎么查询数据库中第30到40条记录呢? 通过ID,查询当前第30-40条记录 注意,ID不是顺序的
- Android studio导入项目时的问题(Re-download dependencies and sync project (requires network))
- 【ZJOI2009】【Codevs 2347】假期的宿舍
- python 两个文件夹里的文件名对比
- POJ2503 Babelfish map或者hash_map
- GitLab: API is not accessibl
- nrm -- NPM registry 管理工具
- 解决Error for wireless request ";Set Mode"; (8B06) 问题 (转载)
- 236 Lowest Common Ancestor of a Binary Tree 二叉树的最近公共祖先
- java 利用Xstream注解生成和解析xml