一个280M 的txt文本文件,hive 进入shell 以后,select count(*) from test;
查看运行日志,有两个map,一个map256M ,另外一个24M;可以看到默认的设置
mapreduce.input.fileinputformat.split.maxsize 256000000
mapreduce.input.fileinputformat.split.minsize 1
blocksize 为128M
看到一篇文章,说的splitsize由什么参数决定的
参考地址:https://www.cnblogs.com/codeOfLife/p/5676754.html
当mapreduce.input.fileinputformat.split.maxsize > mapreduce.input.fileinputformat.split.minsize > dfs.blockSize的情况下,此时的splitSize 将由mapreduce.input.fileinputformat.split.minsize参数决定
当mapreduce.input.fileinputformat.split.maxsize > dfs.blockSize > mapreduce.input.fileinputformat.split.minsize的情况下,此时的splitSize 将由dfs.blockSize配置决定
当dfs.blockSize > mapreduce.input.fileinputformat.split.maxsize > mapreduce.input.fileinputformat.split.minsize的情况下,此时的splitSize将由mapreduce.input.fileinputformat.split.maxsize参数决定。
按照上面的说法,在默认的情况下
mapreduce.input.fileinputformat.split.maxsize > dfs.blockSize > mapreduce.input.fileinputformat.split.minsize
256000000 > 128M > 1
那么280M的文本文件应该是以128M来切割的,应该有3个map,但是为什么是按照256M切割的了?