multipleoutputformat-hadoop

nhjlsmyf  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(330)

我有点新Map减少,所以如果有人可以指导我与下面的问题,这将是伟大的
我使用多个输出格式来编写mapreduce中的分离输出文件。假设我的输入文件有水果和蔬菜,因此我把它分成两个文件。水果和蔬菜如下。
水果-r-00000,蔬菜-r-00000,零件-r-00000
我不知道有多少减速器会运行?我知道默认情况下,reducer的数量设置为1,并且由于文件名的数字部分是相同的,所以我相信只有一个reducer运行。我的理解正确吗?为什么要创建part-r-00000文件?我把所有的输出都写在水果文件或蔬菜文件中。
如果我有1 gb的数据要处理,我将如何决定要使用的还原器的最佳数量?

igetnqfo

igetnqfo1#

one reducer will run ,it has nothing to do with part of file name , no of reducer would be either specified by the user by default it calculated the size of the input file and amount of work which need to be done in reducers .

part-r-00000 : This is related with partitioning, Since we have one reducer so all partitions will point to this file 

Number of reduces in most cases specified by users. It mostly depends on amount of work, which need to be done in reducers. But their number should not be very big, because of algorithm, used by Mapper to distribute data among reducers. Some frameworks, like Hive can calculate number of reducers using empirical 1GB output per reducer.
nhhxz33t

nhhxz33t2#

1.这个输出突出了multipleoutputs和multipleoutputformat之间的一个关键区别。当使用multipleoutputs时,您可以输出到reducer的常规outputcollector,或输出到指定输出的outputcollector,或同时输出到这两者,这就是为什么您会看到part-nnnnn文件。
2.根据不同减速机数量的对标,可以确定最佳的减速机数量。这也取决于数据的处理。
例如,我们将使用2个减缩器处理1gb,这会产生一小部分处理。但是对于其他mr作业,我们需要为1gb文件设置5个减缩器,这会产生某种巨大的处理/计算。所以最好设置基准。

相关问题