我有很多需要由 C++ 库处理的 zip 文件。所以我使用 C++ 来编写我的 hadoop 流程序。该程序将读取一个 zip 文件,将其解压缩并处理提取的数据。我的问题是:
我的映射器无法获得一个文件的内容。它通常会得到类似 2.4 文件或 3.2 文件的内容。Hadoop 会向我的映射器发送几个文件,但至少有一个文件是部分的。你知道 zip 文件不能这样处理。每张地图我可以只得到一个文件吗?我不想使用文件列表作为输入并从我的程序中读取它,因为我想拥有数据局部性的优势。
如果 Hadoop 不拆分 zip 文件,我可以接受每个地图的多个 zip 文件的内容。我的意思是 1、2、3 个文件,而不是 2.3 个文件。实际上它会更好,因为我的程序需要加载大约 800MB 的数据文件来处理解压缩的数据。我们可以这样做吗?