输入文件保存在Block中
Hadoop2中 默认的Block大小为128M
分片输入
假设存储420M的文件
第四块就只存储了36M
若还有其他文件
这样就被分成了五份,分片数量为5,地址都会保存在NameNode中
但是NameNode的内存是有限的,所以这样对HDFS带来性能问题
所有HDFS适合存放大文件,
对于大量小文件,可以采用压缩、合并小文件的优化策略
例如:设置文件输入类型为CombineFileInputFormat格式
节点Map任务的个数
两个文件 1、2
根据大小分为四块,启动四个map任务
也就是说同时有四个Map线程在执行任务
节点Map任务的个数
在实际情况下,map任务的个数是受多个条件制约的,一般一个DataNode的map任务数量控制在10-100比较合适。
调节Map任务的个数
- 增加map个数,可增大mapred,map.tasks
- 减少map个数,可增大mapred.min.split.size
若要减少map个数,但是有很多小文件,可以将小文件合并成大文件,在使用准则2