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

Hadoop大数据课程:HDFS的块

Hadoop大数据课程:HDFS的块

Hadoop大数据课程:HDFS的块,块是文件系统中的一个很重要的概念。在UNIX/Linux系统中有一个数据块(Data Block)的概念,Data Block是文件系统读写的最小数据单元。

一般在文件系统中数据块的大小是512字节,一个文件所占的大小就是数据块大小的整数倍,对于用户来讲对文件的访问/存取都是透明的,同样系统管理员可以利用系统本身的命令对数据块进行相关操作。因此单从文件系统来讲,HDFS也有一个块(Block)的概念,不同之处在于HDFS为了满足大数据的效率和整个集群的吞吐量选择了更大的数值,默认为64MB。

和一般的文件系统不同的是:虽然块设置得比较大,但是当一个文件的大小小于HDFS的块大小时,实际存储所占的大小并不占用一个块的大小。

客户端在读取HDFS上的一个文件时就以块为基本的数据单元。例如一次简单读取,首先,客户端把文件名和程序指定的字节偏移,根据固定的Block大小,转换成文件的Block索引。然后,客户端把文件名和Block索引发送给Master节点,Master节点将相应的Block标识和副本的位置信息返回给客户端,客户端用文件名和Block索引作为key缓存这些信息,之后客户端发送请求到其中的一个副本,一般会选择最近的。

请求信息包含了Block的标识和字节范围。在对这个Block的后续读取操作中,客户端不必再和Master节点通信了,除非缓存的元数据信息过期或文件被重新打开。实际上,客户端通常会在一次请求中查询多个Block信息,Master节点的回应也可能包含了紧跟着这些被请求的Block后面的Block的信息。在实际应用中,这些额外的信息在不花费任何代价的情况下,避免了客户端和Master节点未来可能会发生的几次通信。

技术沙龙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> -->
我要参加技术沙龙