第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/