我想在 Hadoop 中的 MapReduce 作业的工作目录中创建一个目录。
例如使用: 文件 setupFolder = new File(setupFolderName); setupFolder.mkdirs();
在我的映射器类中写入一些中间文件。这是正确的方法吗?
此外,在完成工作后,如果我愿意,我将如何再次访问该目录?
请指教。
最佳答案
如果您使用的是 java,您可以覆盖 setup
方法并在那里打开文件处理程序(并在 cleanup
中关闭它)。此句柄将对所有映射器可用。
我假设您不是在这里写所有的 map 输出,而是写一些调试/统计信息。使用此处理程序,您可以按照本例 (http://wiki.apache.org/hadoop/HadoopDfsReadWriteExample) 所示进行读写
如果您想阅读整个目录,请查看此示例 https://sites.google.com/site/hadoopandhive/home/how-to-read-all-files-in-a-directory-in-hdfs-using-hadoop-filesystem-api
请记住,您将无法依赖写入文件的数据顺序。
关于hadoop - 如何在 Hadoop 中创建和读取目录 - Mapreduce Job 工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6893839/