Hadoop Wordcount:每个块超过1个映射任务,并关闭推测执行
在Wordcount中,在关闭推测性执行的情况下,每个块可以获得多于1个映射任务Hadoop Wordcount:每个块超过1个映射任务,并关闭推测执行,hadoop,mapper,input-split,Hadoop,Mapper,Input Split,在Wordcount中,在关闭推测性执行的情况下,每个块可以获得多于1个映射任务 jobtracker是否在幕后发挥了一些神奇的作用,以分配比InputSplits提供的任务更多的任务?块和拆分是两件不同的事情。如果一个块有多个拆分,则该块可能会有多个映射器。答案在于Hadoop InputFormats的工作方式: 在HDFS中: 让我们举一个例子,其中块大小为1MB,HDFS的输入文件大小为10MB,最小分割大小>1MB 1) 首先,将一个文件添加到HDFS中 2) 该文件分为10个块,每个
jobtracker是否在幕后发挥了一些神奇的作用,以分配比InputSplits提供的任务更多的任务?块和拆分是两件不同的事情。如果一个块有多个拆分,则该块可能会有多个映射器。答案在于Hadoop InputFormats的工作方式: 在HDFS中: 让我们举一个例子,其中块大小为1MB,HDFS的输入文件大小为10MB,最小分割大小>1MB 1) 首先,将一个文件添加到HDFS中 2) 该文件分为10个块,每个块大小为1MB 3) 然后,输入拆分器读取每个1MB块 4) 由于1MB块小于最小分割大小,HDFS一次处理1MB,无需额外分割 这个故事的寓意是:如果拆分小于最小拆分大小,FileInputFormat实际上会为您执行额外的拆分 我想我完全忘记了这一点,但回顾过去,这从一开始就是hadoop的一个特性。许多生态系统工具使用输入格式在运行时任意分割块的能力,以特定于应用程序的方式分配负载
这里比较棘手的一点是,在toy mapreduce作业中,在所有情况下都希望每个分割一个块,而在实际集群中,我们忽略了分割默认大小参数,除非使用大文件,否则这些参数不会起作用 有趣。你为什么这么认为?这当然是答案的一部分。细节是FileInputFormat不是“转储”输入,而是为您拆分数据,如果您的块特别大,它将自行拆分。