老李分享:大数据测试之HDFS文件系统

时间:2024-01-20 11:31:45

poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。POPTEST是国内最早在大数据测试领域中探索的机构,已经形成了先进的行业课程体系和教学方法。poptest陆续会推出大数据方面的知识分享。

Hadoop主要由HDFS和MapReduce引擎两部分组成。

http://hadoop.apache.org/

从0.20.X分支发展出hadoop 1.0.X版 目前是稳定版本。生产环境优先使用。

分布式文件系统(DFS)

1、是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的用户分享文件和存储空间。

2、对用户透明。用户看来就像访问本地的磁盘一样。

3、容错性。即使系统中某个节点宕机,整体系统仍然可以持续运作而不会有数据丢失。

HDFS的架构

主从(Master-Slave),master在系统中只有一个,slave在系统中可以有多个。master维护namenode。

slave维护datanode。

Namenode:整个文件系统的管理节点。负责文件系统名称空间的管理与维护,客户文件操作的控制及具体

存储任务的管理与分配。元数据的管理。元数据(fsimage:存储某一时段NameNode内存元数据信息;edits:

操作日志文件;fstime:保存最近一次chechpoint的时间;version:标志性文件,表明前三个创建成功)。

hdfs-site.xml的dfs.name.dir的属性。

DateNode:提供真实文件数据的存储服务。文件分块(Block),默认块大小64MB。Replication:默认有两个

副本。有三个文件保证文件的安全。在hdfs.site.xml的dfs.replication配置。

SecondaryNameNode:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,

在本地保存,并将其推送到NameNode,同时重置NameNode的editis.SecondaryNameNode默认安装在NameNode

节点上,但这样不安全,可以移动位置。

HDFS数据流-写文件流程:

1、客户端把数据缓存到本地临时文件夹

2、客户端联系NameNode,申请文件命名空间,文件权限等,NodeNode分配DataNode,DateNode依照客户端的位置

被排列成一个有着最近物理距离的序列。

3、与序列的第一个数据服务器建立Socket连接,发送请求头,然后等待回应,一次下传,客户端得到回包,流水线建

立成功。

4、正式发送数据,以4K为大小传送。

HDFS数据流-读文件流程

客户端联系NameNode,得到所有数据块信息,以及数据块对应的所有数据服务器的位置信息尝试从某个数据块对应的一

组数据服务器中选出一个,进行连接。数据被一个包一个包发送回客户端,等到整个数据块的数据都被读取完了,就会

断开此链接,尝试连接下一个数据块对应的数据服务器,整个流程,依次如此反复,直到所有想读的都读取完了为止。