【问题标题】:Changing output file name in Azure HDInsight在 Azure HDInsight 中更改输出文件名
【发布时间】:2014-08-12 13:58:13
【问题描述】:
使用.NET SDK,我正在使用 Azure HDInsight 进行一些日志文件解析。看似简单的事情,例如将输出文件格式从“part-xxxxx”更改为与输入文件名相关的内容,似乎相当复杂,而且文档很少。
根据我对output file formats in Hadoop 的总体了解,这似乎不是我可以根据模板更改的设置(然后可以使用 .NET SDK 中的 HadoopJobConfiguration.AdditionalGenericArguments 输入) ,但是一些实际的 Java 代码,这似乎表明完成这项工作的唯一方法是将我的解决方案重新编码为实际的 Java 类。
建议?
【问题讨论】:
标签:
azure
file-format
azure-hdinsight
【解决方案1】:
这是基本的 Hadoop 事物。
Hadoop 作业将始终以 part-nnnnn 格式输出文件,您可以指定的唯一位是它们将进入的 baseOutputDirectory 路径,因此您当然可以使用该目录将输出与输入相关联。
这样做的原因是每个reducer 必须有自己的输出文件。
如果您在 Hadoop 中对输出进行任何进一步的处理,例如使用 Hive,那么这应该不会太困难,因为使用的 InputFormats 将为您提取所有 part-nnnnn 文件。
也就是说,您可以提供 MultipleOutputFormat 类的子类来控制文件名的模式,但这需要使用 Java,因为您无法使用流 API 编写 OutputFormats。
另一种选择可能是使用 Azure 存储客户端进行合并,并在