本帖最后由 xiaozuoquan 于 2018-12-24 09:08 编辑
1、分布式文件系统详细介绍在hadoop当中,分布式文件系统(HDFS),对文件系统有一个抽象,HDFS属于当中的一个实现类,也就是说分布式文件系统类似于一个接口,定义了标准,下面有很多的实现类,其中HDFS是一个子实现类而已,但是现在很多人都只知道一种就是HDFS的实现,并没有了解过其他的实现类,其实分布式文件系统的实现有很多种, 具体详细参见hadoop权威指南第三版第59页
2、HDFS分布式文件系统设计目标1、 硬件错误 由于集群很多时候由数量众多的廉价机组成,使得硬件错误成为常态 2、 数据流访问 所有应用以流的方式访问数据,设置之初便是为了用于批量的处理数据,而不是低延时的实时交互处理 3、 大数据集 典型的HDFS集群上面的一个文件是以G或者T数量级的,支持一个集群当中的文件数量达到千万数量级 4、 简单的相关模型 假定文件是一次写入,多次读取的操作 5、 移动计算比移动数据便宜 一个应用请求的计算,离它操作的数据越近,就越高效 6、 多种软硬件的可移植性
3、HDFS的来源HDFS起源于Google的GFS论文(GFS,Mapreduce,BigTable为google的旧的三驾马车) 发表于2003年10月 HDFS是GFS的克隆版 Hadoop Distributed File system 易于扩展的分布式文件系统 运行在大量普通廉价机器上,提供容错机制 为大量用户提供性能不错的文件存取服务 4、HDFS的架构图之基础架构
1、 NameNode是一个中心服务器,单一节点(简化系统的设计和实现),负责管理文件系统的名字空间(namespace)以及客户端对文件的访问 2、 文件操作,namenode是负责文件元数据的操作,datanode负责处理文件内容的读写请求,跟文件内容相关的数据流不经过Namenode,只询问它跟哪个dataNode联系,否则NameNode会成为系统的瓶颈 3、 副本存放在哪些Datanode上由NameNode来控制,根据全局情况作出块放置决定,读取文件时NameNode尽量让用户先读取最近的副本,降低读取网络开销和读取延时 4、 NameNode全权管理数据库的复制,它周期性的从集群中的每个DataNode接收心跳信合和状态报告,接收到心跳信号意味着DataNode节点工作正常,块状态报告包含了一个该DataNode上所有的数据列表
|