Hadoop入门(8)--从分片输入到Map

输入文件保存在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

猜你喜欢

转载自blog.csdn.net/weixin_39381833/article/details/81278339