gpt4 book ai didi

Hadoop 流式传输 : single file or multi file per map. 不要拆分

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

我有很多 zip 文件需要由 C++ 库处理。所以我用C++写了我的hadoop流媒体程序。该程序将读取一个 zip 文件,将其解压缩,并处理提取的数据。我的问题是:

  1. 我的映射器无法准确获取一个文件的内容。它通常会得到 2.4 文件或 3.2 文件之类的东西。 Hadoop 将向我的映射器发送多个文件,但至少有一个文件是部分文件。你知道 zip 文件不能这样处理。我可以为每张 map 获取一个文件吗?我不想使用文件列表作为输入并从我的程序中读取它,因为我想利用数据局部性的优势。

  2. 如果 Hadoop 不拆分 zip 文件,我可以接受每个 map 的多个 zip 文件的内容。我的意思是 1、2、3 个文件,而不是 2.3 个文件。实际上它会更好,因为我的程序需要加载大约 800MB 的数据文件来处理解压缩的数据。我们可以这样做吗?

最佳答案

您可以在这里找到解决方案:

http://wiki.apache.org/hadoop/FAQ#How_do_I_get_each_of_a_job.27s_maps_to_work_on_one_complete_input-file_and_not_allow_the_framework_to_split-up_the_files.3F

我建议的最简单方法是将 mapred.min.split.size 设置为一个较大的值,这样您的文件就不会被拆分。

如果这不起作用,那么您需要实现一个InputFormat,这不是很难做到,您可以在以下位置找到步骤:http://developer.yahoo.com/hadoop/tutorial/module5.html#fileformat

关于Hadoop 流式传输 : single file or multi file per map. 不要拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027594/

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