第1代大数据Hadoop。我对Apache Hadoop非常陌生。我只是怀疑可能与我的问题无关。

问题:字数统计问题(干调试)。

范例:

文件名称:test.txt

文件大小:120 MB

默认块大小:64 MB

文件内容:

Hello StackOverflow
Hi StackOverflow
Hola StackOverflow
Mushi Mushi StackOverflow
.....
.....
.....
Mushi Mushi StackOverflow

块数将是:2(64 MB + 56 MB)

块1包含:
Hello StackOverflow
Hi StackOverflow
Hola StackOverflow
Mushi Mus

第2块包含:
hi StackOverflow
.....
.....
.....
Mushi Mushi StackOverflow

注意:这里,Mushi字在块1和块2之间分割,因为在“Mus”字的块大小变为64 MB时,剩余的“hi”字进入了块2。

现在我的问题是:
Q1)有可能吗?

Q2)如果没有,为什么?

Q3)如果是,那么字数输出将是什么。

Q4)两个块的映射器的输出是什么。

最佳答案

MapReduce框架适用于 InputSplit 而不是 HDFS块

请查看下面的SE帖子,以更好地了解给定文件的InputSplit和映射器数量。

How does Hadoop process records split across block boundaries?

Default number of reducers

关于您的问题:



是。可能。



Block-2中的数据将复制到正在处理InputSplit的Mapper节点上。

更新:

关于注释中的其他查询,请查看Hadoop权威指南的以下内容:



如果没有远程读取,则HDFS块是Mapper节点中的InputSplit。如果记录越过Mapper节点的边界,则远程读取将把数据提取到存在大部分数据的第一个Mapper节点。

关于hadoop - HDFS中的数据块划分是如何发生的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42067280/

10-16 02:33