gpt4 book ai didi

java - Mapreduce 程序的输入数据

转载 作者:可可西里 更新时间:2023-11-01 15:16:24 24 4
gpt4 key购买 nike

我想写一个 MapReduce 代码。我的代码分为三个部分:数据准备、MapReduce 和数据后处理。数据准备阶段的输出可以是二维数组或列表。我的问题是,我应该如何为映射器提供第一阶段的输出?我应该把它导出到txt文件然后再导入吗?如果是这样,我应该如何提供文件位置?使用网址?如果没有,我可以直接为映射器提供列表或数组吗?我试图在网上找到类似的案例,但我找不到任何东西。

最佳答案

您的第一份工作生成一个文件。作业脚本应使用

将文件复制到 HDFS
hadoop fs -copyFromLocal /your/local/folder /your/folder/in/hdfs

使用 /your/folder/in/hdfs 作为 MapReduce 作业的输入文件夹。如果您的 map reduce 是基于 java 的,您可以将您的 map reduce 作业称为

hadoop jar yourCode.jar yourDriverClass \
-files any_file_that_you_want_to_be_available_with_job.txt \
-libjars supporting_librarys_if_any.jar \
folder_containing_input_file \
folder_to_expect_output_files

请注意上面的命令行假定您的驱动程序类使用 arg[0] 作为输入文件夹和 arg[1] 作为输出文件夹

在这种情况下 folder_containing_input_file = /your/folder/in/hdfs

所以回答你的问题

  • 我应该将其导出到 txt 文件并再次导入吗?
    • 是的
  • 如果是这样,我应该如何提供文件位置?
    • 详细如上
  • 使用网址?
    • 使用 URL 是一种选择,但上面的方法最适合您的情况
  • 如果没有,我可以直接向映射器提供列表或数组吗?
    • 请详细说明什么是“直接”。如果您希望所有映射器都能够看到相同的文件,那么您的选择是在命令行中使用 -files 选项。使用 -files 使文件像缓存文件一样工作。

关于java - Mapreduce 程序的输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20640650/

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