hadoop如何读取所有数据然后分块?

时间:2015-10-13 15:07:01

标签: hadoop mapreduce hdfs jobs

我正在使用hadoop 2.6来处理足够的数据,所以我有一个关于hadoop如何读取所有数据然后分成块的问题?据我所知,首先将数据上传到hdfs,然后数据在N块中拆分取决于块的大小。如果我有1TB的文本用于做wordcount算法,我想hadoop首先提高内存文件,读取文件,并以某种方式读取x行然后复制数据块。

如果我的假设不好,那么正确的方法是什么,因为我认为将数据提升到内存中,这应该是分段完成的。正如你在内部做的那样?

由于 干杯

2 个答案:

答案 0 :(得分:0)

您的数据上传到HDFS语句是正确的。

WordCount MapReduce作业启动时,对于每个chuck(块),将分配并执行一个Mapper任务。在Mappers阶段之后,Reducers的输出会发送到sort-shuffle。在sort-shuffle期间,Mapper输出为partitionedsortedreceived (copied) by the Reducers

MapReduce框架不读取任何数据并复制到任何夹头中。当您将文件存储在HDFS中时,已经完成了。

答案 1 :(得分:0)

根据块大小上传数据时,数据会被分成块并存储在不同的节点上。

但是当你启动map-reduce工作时, 我们应该知道分裂。 它不是块no = mapper no

它的分裂数=映射器的数量

拆分是逻辑划分,块是物理划分。 数据以拆分方式读取。默认情况下,分割大小=块大小,但我们可以更改它。