Java Hadoop纱线写入本地文件系统

Java Hadoop纱线写入本地文件系统,java,hadoop,hdfs,yarn,Java,Hadoop,Hdfs,Yarn,我有一个使用Hadoop处理1000个小文件的场景。然后,Hadoop作业的输出将用作非Hadoop算法的输入。在当前的工作流中,数据被读取、转换为序列文件、处理并生成小文件,然后以序列文件的形式输出到HDFS。然而,非Hadoop算法无法理解序列文件。因此,我编写了另一个简单的Hadoop作业,从序列文件读取结果文件的数据,并创建非Hadoop算法可以使用的最终小文件 这里需要注意的是,对于最后一个作业,我必须从HDFS读取序列文件,并写入每个节点的本地文件系统,以通过非Hadoop算法进行处

我有一个使用Hadoop处理1000个小文件的场景。然后,Hadoop作业的输出将用作非Hadoop算法的输入。在当前的工作流中,数据被读取、转换为序列文件、处理并生成小文件,然后以序列文件的形式输出到HDFS。然而,非Hadoop算法无法理解序列文件。因此,我编写了另一个简单的Hadoop作业,从序列文件读取结果文件的数据,并创建非Hadoop算法可以使用的最终小文件

这里需要注意的是,对于最后一个作业,我必须从HDFS读取序列文件,并写入每个节点的本地文件系统,以通过非Hadoop算法进行处理。我尝试将输出路径设置为
file://
,并使用Hadoop
LocalFileSystem
类。但是,这样做只会将最终结果输出到namenode的本地文件系统

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


谢谢

不太感谢。虽然可以写入
LocalFileSystem
,但不能要求Thread在所有节点上运行应用程序。此外,根据集群的配置方式,Thread的节点管理器可能不会在系统的所有节点上运行


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

您可以装载NFS驱动器。。。如果只需要收集所有结果,我看不到写入本地数据节点的好处。此外,hadoop不能很好地处理数千个小文件,因此您确定使用了正确的过程吗?不幸的是,项目要求如前所述。使用Hadoop进行处理实际上为我们节省了20多个小时的工作,尽管有很多文件,所以我认为我们对Hadoop很在行。谢谢你的建议,我们已经考虑过了。