假定有一个mapper,会在每次map函数的调用中生成一个完整的输出文件。把此文件直接写入HDFS将会创建大量非常小的文件。因此,更好的选择是合并所有这些文件。典型的方案是创建序列文件,将每个map的输出保存为值,并使用map生成的键作为键。进一步假定处理该作业结果的应用程序不能读取序列文件,但可以使用tar文件。
  该类的主要功能集中于write方法,它基于键和值创建tar条目。此条目接下来被添加到读取器构造函数创建的OutputStream中。Close方法清空输出流并关闭它。
  要使用该自定义写入器,必须创建一个自定义RecordWriter,因此实现自定义OutputFormat最简单的方式就是继承Hadoop的FileOutputFormat并重载getRecordWriter方法。
  该实现的一个重要部分是调用getDefaultWorkFile方法(由超类实现)以获取输出的位置。在这种情况下,位置将会落在与给定尝试相应的临时目录中。

关于TeamDoc软件:

TeamDoc是基于服务器/客户端架构的轻量级文件管理软件。TeamDoc将文件集中加密存储在您单位自己的服务器中,员工使用TeamDoc客户端访问服务器,从而获得与自己权限相关的权限:登入后与“我的电脑”界面类似,可以看到自己该看的文件,编辑自己能编辑的文档,对于能看到的文件,还可以细分文档权限,进而做到能看不能拷,能看不能截屏等功能,多种权限灵活设置,在线协同编辑、全文搜索、日志与版本追踪,快速构建企业文档库。告别假大空,我们提供值得您选择的、易用的、可用的文档管理软件。现在就访问TeamDoc首页

TeamDoc软件界面(点击可放大)

版权所有:南京网亚计算机有限公司,本文链接地址: 实现RecordWriter来产生输出tar文件