如何使用 MapReduce 框架处理打开的文件
Posted
技术标签:
【中文标题】如何使用 MapReduce 框架处理打开的文件【英文标题】:How to process an open file using MapReduce framework 【发布时间】:2015-01-26 15:49:55 【问题描述】:我有一个文件被聚合并写入 HDFS。此文件将在关闭前打开一小时。是否可以在打开时使用 MapReduce 框架计算此文件?我试过了,但它没有拾取所有附加的数据。我可以查询 HDFS 中的数据并且它可用,但在 MapReduce 完成时不能。无论如何我可以强制 MapReduce 读取打开的文件吗?也许自定义 FileInputFormat 类?
【问题讨论】:
【参考方案1】:您可以读取物理冲洗的内容。由于 close() 会最终刷新数据,因此无论您如何访问它(mapreduce 或命令行),您的读取都可能会丢失一些最新数据。 作为一种解决方案,我建议定期关闭当前文件,然后打开一个新文件(带有一些递增的索引后缀)。您可以在多个文件上运行 map reduce。您仍然会在最近的文件中丢失一些数据,但至少您可以通过文件“轮换”的频率来控制它。
【讨论】:
以上是关于如何使用 MapReduce 框架处理打开的文件的主要内容,如果未能解决你的问题,请参考以下文章