块大小的确定
根据《hadoop权威指南》中介绍,块的大小主要是有目前的磁盘传输效率决定的,书中假设了若寻址时间为10ms,然而寻址时间为传输时间的十分之一为最佳,那么传输时间为1s,目前的传输速率大概就是100mb/s,所以块的大小为124mb,随着磁盘的传输效率越快,这个值也会增加。
块大小过小
1.增加硬盘的寻址时间,因为hdfs是应对大数据的,不适合存储小文件,小文件过多会增加硬盘的寻址时间
2.增加了namenode的内存消耗,数据块大小过小,数据块数据增加,那么需要维护的数据块信息就会增多,从而消耗namenode内存
块大小过小
1.若mao阶段崩溃,那么恢复时,系统需重新加载文件,那么文件越大加载越慢。
2.数据量大小和文件解决的复杂性呈线性关系,同一算法,数据量越大,时间负责度越高。
3.约束map端输出,map端输出需经过归并排序才能执行reduce操作,然鹅归并排序的思想就是“排序小文件,合并为大文件”,所以文件不宜过大
4.可能并行度下降:若参数过大,导致一个map任务的数据块的数量小于节点数量,会造成hadoop并行度下降,导致mr的运行速度变慢。