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需要通过检测结果目录下是否存在该文件判断作业是否运行完成。

最新文章

  1. 守护进程demon.c
  2. 开源协议:LGPL协议、OSGi协议---打酱油的日子
  3. React Native01-开始 Windows环境安装配置篇
  4. 60. Insert Interval && Merge Intervals
  5. php---分组函数group_concat()
  6. zw版【转发·台湾nvp系列Delphi例程】HALCON SetMshape
  7. 160907、CSS 预处理器-Less
  8. ExtJS MVC结构
  9. lca 最近公共祖先
  10. jquery - ul li click 无响应
  11. 移动app的一些心得
  12. keepalived问题
  13. JSP慕课网之Session
  14. 增加AP INVOICE 行&分配行
  15. URL和URL比较
  16. mybatis-高级结果映射之一对多
  17. OpenStack-Neutron-安全组
  18. SQL[Err]ORA-00XXX: missing 相关
  19. vue之文本渲染
  20. Result映射成对象和List

热门文章

  1. 怎么查询数据库中第30到40条记录呢? 通过ID,查询当前第30-40条记录 注意,ID不是顺序的
  2. Android studio导入项目时的问题(Re-download dependencies and sync project (requires network))
  3. 【ZJOI2009】【Codevs 2347】假期的宿舍
  4. python 两个文件夹里的文件名对比
  5. POJ2503 Babelfish map或者hash_map
  6. GitLab: API is not accessibl
  7. nrm -- NPM registry 管理工具
  8. 解决Error for wireless request "Set Mode" (8B06) 问题 (转载)
  9. 236 Lowest Common Ancestor of a Binary Tree 二叉树的最近公共祖先
  10. java 利用Xstream注解生成和解析xml