Hadoop 如何使用MapReduce framework处理打开的文件

Hadoop 如何使用MapReduce framework处理打开的文件,hadoop,mapreduce,hdfs,Hadoop,Mapreduce,Hdfs,我有一个聚合并写入HDFS的文件。此文件将在关闭前打开一小时。在打开该文件时,是否可以使用MapReduce framework计算该文件?我试过了,但它没有收集所有附加的数据。我可以在HDFS中查询数据,但在MapReduce中无法查询。我是否可以强制MapReduce读取打开的文件?也许可以自定义FileInputFormat类?您可以读取物理刷新的内容。由于close()对数据进行最终刷新,因此无论您如何访问数据(mapreduce或命令行),您的读取可能会丢失一些最新的数据。 作为一种解

我有一个聚合并写入HDFS的文件。此文件将在关闭前打开一小时。在打开该文件时,是否可以使用MapReduce framework计算该文件?我试过了,但它没有收集所有附加的数据。我可以在HDFS中查询数据,但在MapReduce中无法查询。我是否可以强制MapReduce读取打开的文件?也许可以自定义FileInputFormat类?

您可以读取物理刷新的内容。由于close()对数据进行最终刷新,因此无论您如何访问数据(mapreduce或命令行),您的读取可能会丢失一些最新的数据。 作为一种解决方案,我建议定期关闭当前文件,然后打开一个新文件(带有一些递增的索引后缀)。可以在多个文件上运行map reduce。您仍然会在最近的文件中丢失一些数据,但至少您可以通过文件“旋转”的频率来控制它