Hadoop2.x中的默认块大小是128mb。64mb有什么问题?
tzxcd3kk1#
hdfs的块大小非常大,可以最小化寻道时间。最佳块大小取决于平均文件大小、寻道时间和传输速率。磁盘速度越快,数据块越大,但有一个限制。为了利用数据局部性,拆分具有相同大小的数据块,因为我们为每个拆分启动一个线程,过大的块会降低并行性。所以最好的办法是:保持较低的寻道时间。(-->增加快速磁盘上的块大小)保持分割不要太低。(-->减小块大小)利用数据位置。(-->保持分割大小与块大小一样接近)128mb是当今磁盘速度、大小和计算性能的最佳选择。
3htmauhk2#
块大小增加有一些原因。如果您管理的是大的hadoop集群,它可以提高性能。如果您要管理一个1peta字节的集群,那么64mb的块大小会导致1500多万个块,这对于namenode来说是很难有效管理的。在mapreduce执行期间,拥有大量的块也会导致大量的Map器。根据您的数据需求,您可以进行微调 dfs.blocksize 通过正确设置块大小(64mb或128MB或256MB或512MB),可以实现namenode性能的改进map-reduce作业的性能改进,因为Map器的数量直接依赖于块大小。有关详细信息,请参阅此链接。
dfs.blocksize
2条答案
按热度按时间tzxcd3kk1#
hdfs的块大小非常大,可以最小化寻道时间。最佳块大小取决于平均文件大小、寻道时间和传输速率。
磁盘速度越快,数据块越大,但有一个限制。
为了利用数据局部性,拆分具有相同大小的数据块,因为我们为每个拆分启动一个线程,过大的块会降低并行性。所以最好的办法是:
保持较低的寻道时间。(-->增加快速磁盘上的块大小)
保持分割不要太低。(-->减小块大小)
利用数据位置。(-->保持分割大小与块大小一样接近)
128mb是当今磁盘速度、大小和计算性能的最佳选择。
3htmauhk2#
块大小增加有一些原因。如果您管理的是大的hadoop集群,它可以提高性能。
如果您要管理一个1peta字节的集群,那么64mb的块大小会导致1500多万个块,这对于namenode来说是很难有效管理的。
在mapreduce执行期间,拥有大量的块也会导致大量的Map器。
根据您的数据需求,您可以进行微调
dfs.blocksize
通过正确设置块大小(64mb或128MB或256MB或512MB),可以实现namenode性能的改进
map-reduce作业的性能改进,因为Map器的数量直接依赖于块大小。
有关详细信息,请参阅此链接。