参数"mapred.min.split.size"会更改先前写入文件的块的大小吗?假设我在启动JOB时传递参数"mapred.min.split.size",其值为134217728(128MB).关于会发生什么事情的说法是正确的?
1 - 每个MAP进程相当于2个HDFS块(假设每个块64MB);
2 - 我的输入文件(以前包括HDFS)将有一个新的划分来占用HDFS 128M中的块;
我是hadoop的新手和地图缩小模型并试图让这些概念正确.
我首先想要得到输入拆分的概念和映射器的数量是正确的.
我正在运行mapreduce wordcount程序,以下是我的问题.
1)如何确定输入分割?我在同一个集群上运行相同的程序,有两个不同大小的输入
file 1 : size 48mb. => i got number of splits:1 in log.
file 2: size 126mb => number of splits : 1
file 2 : size 126mb ( executed in eclipse IDE) => number of splits: 4
Run Code Online (Sandbox Code Playgroud)
不应该是126 MB文件的分割数等于2?因为我已经读过块大小为64 MB.所以它必须创建2个分裂.
2)如何确定地图制作者的数量?我试图通过以下方式获得映射器的数量来理解mapreduce的工作流程.
conf.get("mapred.map.tasks")
Run Code Online (Sandbox Code Playgroud)
它每次返回2.
3)分割数和映射器数之间是否有任何关系?
4)做上面的事情取决于集群?对于伪分布式模式和其他集群是否相同或不同?
谢谢.