gpt4 book ai didi

java - 来自不同服务器的 Hadoop 输入

转载 作者:行者123 更新时间:2023-12-01 14:21:04 25 4
gpt4 key购买 nike

我有一个主节点和两个数据节点,它们位于不同的服务器上。对于两个数据节点,每个节点在自己的HDFS中都有一个日志文件。现在我想运行 Hadoop 在主节点上执行映射/归约,输入应该是来自两个数据节点 HDFS 的两个日志文件。我可以这样做吗?如果可以的话,如何设置输入路径? (例如hadoop jar wordcount.jar datanode1/input/logfile1 datanode2/input/logfile2输出...像这样?)是否有可能来自不同服务器中的不同datanode的HDFS的输入?

最佳答案

当你说Hadoop时,没有什么比它自己的HDFS更好的了。 HDFS 是一个分布式 FS,分布在 Hadoop 集群中的所有机器上,充当单个 FS。

您只需将这两个文件放入一个 HDFS 目录中,并将该目录作为 MapReduce 作业的输入即可。

FileInputFormat.addInputPath(job, new Path("/path/to/the/input/directory"));

对于 MapReduce 作业也是如此。尽管您将作业提交给 JobTracker,但该作业实际上以分布式方式在集群的所有节点上运行,其中存在要处理的数据。

哦,还有一件事...HDFS 中的文件不会作为一个整体存储在任何特定的机器上。它被切成 64MB(可配置)的小 block ,这些 block 随机存储在集群中的不同机器上。

关于java - 来自不同服务器的 Hadoop 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17561556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com