gpt4 book ai didi

hadoop - 如果值跨边界存储,如何在 mapreduce 程序中创建键值对?

转载 作者:可可西里 更新时间:2023-11-01 14:58:03 25 4
gpt4 key购买 nike

在我需要处理的输入文件中,数据按标题及其各自的记录分类。我的 200 MB 文件有 3 个这样的标题,它的记录分为 4 个 block (3*64 MB 和 1*8 MB)。

数据格式如下

HEADER 1
Record 1
Record 2
.
.
Record n
HEADER 2
Record 1
Record 2
.
.
Record n
HEADER 3
Record 1
Record 2
.
.
Record n

我只需要将 HEADER 作为键,将其下面的 Records 作为值,并在我的映射器代码中处理一些操作。

这里的问题是我的记录分布在不同的 block 中。假设我的第一个 Header 及其各自的 Records 占用 70 MB 的空间,这意味着它占用第一个 block 的 64 MB 和第二个 block 的 6 MB 空间。

现在在第二个 block 上运行的映射器如何知道 6 MB 的文件属于 HEADER 1 的记录。

任何人都可以向我解释如何完整地获取标题及其记录。

最佳答案

您需要一个自定义记录阅读器和自定义行阅读器以这种方式处理而不是读取每一行。

由于拆分是在客户端计算的,因此每个映射器都知道是否需要丢弃前一个 header 的记录。

希望下面的链接对您有所帮助 How does Hadoop process records split across block boundaries?

关于hadoop - 如果值跨边界存储,如何在 mapreduce 程序中创建键值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32821073/

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