Hadoop Yarn写入本地文件系统

时间:2017-08-20 18:59:51

标签: java hadoop hdfs yarn

我有一个使用Hadoop处理1000个小文件的场景。然后,Hadoop作业的输出将用作非Hadoop算法的输入。在当前工作流程中,读取数据,转换为序列文件,处理,然后生成的小文件以序列文件的形式输出到HDFS。但是,非Hadoop算法无法理解序列文件。因此,我已经编写了另一个简单的Hadoop作业来读取生成的文件'来自Sequence File的数据,并创建可由非Hadoop算法使用的最终小文件。

这里的问题是,对于最后的工作,我必须从HDFS读取序列文件并写入要由非Hadoop算法处理的每个节点的本地文件系统。我尝试将输出路径设置为file:///<local-fs-path>并使用Hadoop LocalFileSystem类。但是,这样做只会将最终结果输出到namenode的本地文件系统。

为了完成图片,我有10个节点Hadoop设置Yarn。在Hadoop Yarn模式下是否有办法从HDFS读取数据并将结果写入每个处理节点的本地文件系统?

由于

1 个答案:

答案 0 :(得分:0)

不是真的。虽然您可以写入LocalFileSystem,但您无法要求YARN在所有节点上运行您的应用程序。此外,根据您的群集的配置方式,YARN的节点管理器可能无法在您系统的所有节点上运行。

可能的解决方法是将转换后的文件保留在HDFS中,然后让非Hadoop进程首先调用hdfs dfs -copyToLocal