我使用hadoop 2.6来处理足够的数据,所以我有一个关于hadoop如何读取所有数据然后以大块分割的问题?我知道首先将数据上传到hdfs,然后根据块的大小将数据分成N个块。在我有1TB的文字做wordcount算法的情况下,我想hadoop首先提高内存的文件,读取文件,并以某种方式读取一个x行然后复制大块数据。hadoop如何读取所有数据,然后分块分割?
如果我的假设是错误的,那么正确的方法是怎么样的,因为我认为将数据提升到内存中,这应该分段完成。你在内部做什么?
感谢 干杯
我使用hadoop 2.6来处理足够的数据,所以我有一个关于hadoop如何读取所有数据然后以大块分割的问题?我知道首先将数据上传到hdfs,然后根据块的大小将数据分成N个块。在我有1TB的文字做wordcount算法的情况下,我想hadoop首先提高内存的文件,读取文件,并以某种方式读取一个x行然后复制大块数据。hadoop如何读取所有数据,然后分块分割?
如果我的假设是错误的,那么正确的方法是怎么样的,因为我认为将数据提升到内存中,这应该分段完成。你在内部做什么?
感谢 干杯
你的数据上传到HDFS说法是正确的。
当WordCountMapReduce
作业将启动时,为每个卡盘(块)一个Mapper
任务被分配并执行。 Mappers
的输出在sort-shuffle
阶段后发送到Reducers
。在分类洗牌期间,Mapper输出为partitioned
,sorted
和received (copied) by the Reducers
。
MapReduce
框架不读取任何数据并复制到任何查克。当您将文件存储在HDFS中时,这已经完成了。
当您根据您的块大小上传数据时,您的数据被分成块并存储在不同的节点上。
但是,当您启动map-reduce作业时,我们应该知道分割。 它不是块没有=映射器没有
其没有裂痕的=映射器的数目
分裂是逻辑划分和块是物理分割。 数据以拆分方式读取。默认分割大小=块大小,但我们可以改变这一点。
我想,我应该更好地解释我的问题,我了解MapReduce框架,我的问题集中在hadoop如何细分所有数据? – WilD
@WilD你是什么意思'如何hadoop分割所有数据?' – YoungHobbit
更清楚地,我想知道如何hdfs分割和读取所有数据。因为我认为当hdfs将数据块分割成一块时,hdfs应该读取所有数据,以便知道该分区不存在数据损坏。 – WilD