当前位置: Oracle DBA培训网-优技培训 >> Hadoop大数据 > Hadoop培训教程 >

Hadoop入门课程:HDFS的块大小

Hadoop入门课程:HDFS的块大小

Hadoop入门课程:HDFS的块大小,Block的大小是HDFS关键的设计参数之一,默认的参数是64MB,这个尺寸远远大于一般文件系统的Blocksize。每个Block的副本都以普通Linux文件的形式保存在DataNode服务器上,只有在需要的时候才扩大。

惰性空间分配策略避免了因内部碎片造成的空间浪费,选择较大的Block尺寸有几个优点:

首先,它减少了客户端和NameNode通信的需求,因为只需要一次和NameNode节点的通信就可以获取Block的位置信息,之后就可以对同一个Block进行多次的读写操作。这种方式对降低工作负载来说效果显著,因为应用程序通常是连续读写大文件,即使是小规模的随机读取,采用较大的Block尺寸也会带来明显的好处,客户端可以轻松地缓存一个数TB的工作数据集所有的Block位置信息。

其次,采用较大的Block尺寸,客户端能够对一个块进行多次操作,这样就可以通过与Block服务器保持较长时间的TCP连接来减少网络负载。最后,选用较大的Block尺寸减少了NameNode节点需要保存的元数据的数量,从而很容易把所有元数据全部放在内存中。

另一方面,即使结合惰性空间分配,采用较大的Block尺寸也有缺陷。小文件包含较少的Block,甚至只有一个Block,当有许多的客户端对同一个小文件进行多次访问时,存储这些Block的DataNode服务器就会变成访问热点。在实际应用中,由于程序通常是连续地读取包含多个Block的大文件,访问热点还不是主要的问题。

然而当一个可执行文件保存在HDFS上时或许是一个Block的文件,当这个可执行文件在数百台机器上同时启动时,数百个客户端的并发请求访问会导致系统局部过载,解决这个问题可以通过自定义更大的HDFS复制因子数来保存可执行文件。同样对非常重要的数据或经常频繁访问的数据设置较高的复制因子数对于提高系统性能是非常重要的。

技术沙龙MORE+

标签错误:<!-- #Label# labelId=20160707140604 moduleId=1 classId=12231768634 orderby=2 fields=url,title,u_info attribute= datatypeId=22192428132 recordCount=3 pageSize= <htmlTemplate><dt><img src="/images/index_26${index}.jpg" width="100" height="62" /><a href="$url" title="${title}">${title}</a><span>${api.left(u_info,60)}</span></dt></htmlTemplate> -->
我要参加技术沙龙