HDFS调研报告议题Hadoop简介基本概念主要操作容错恢复弊端Hadoop简介•起源起源于ApacheNutch,后者是一个开源的网络搜索引擎,在后来从Nutch转移出来成为一个独立的Lucene子项目。.核心分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。.子项目议题Hadoop简介基本概念主要操作容错恢复弊端HDFS基本概念•HDFS简介HDFS基本概念•命名空间(namespace)HDFS支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似:用户可以创建、删除、移动或重命名文件。当前,HDFS不支持用户磁盘配额和访问权限控制,也不支持硬链接和软链接。但是HDFS架构并不妨碍实现这些特性。HDFS基本概念•元数据节点(Namenode)Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问.Namenode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体Datanode节点的映射。.接收数据节点的心跳。所有的文件和文件夹的元数据保存在一个文件系统树中(内存中)。在硬盘上保存:命名空间镜像(namespaceimage,存储着文件系统的命名空间、文件的属性、数据块到文件的映射、数据块到数据节点的映射)及修改日志(editlog).HDFS基本概念•元数据节点(Namenode)文件夹结构:•VERSION文件是javaproperties文件,保存了HDFS的版本号。–layoutVersion是一个负整数,保存了HDFS的持续化在硬盘上的数据结构的格式版本号。–namespaceID是文件系统的唯一标识符,是在文件系统初次格式化时生成的。–cTime此处为0–storageType表示此文件夹中保存的是元数据节点的数据结构。HDFS基本概念•文件元数据名字空间、文件到数据块的映射、数据块到数据节点的映射所有的元数据保存在内存中,所以元数据节点可以周期性的快速扫描元数据状态,然后确定哪些数据块由于数据节点宕机而需要重新复制,那些文件需要回收,哪些文件需要迁移来保证系统的负载均衡。HDFS基本概念•数据节点(Datanode)Datanode负责处理文件系统客户端的读写请求,是文件系统中真正存储数据的地方,向元数据节点发送心跳,包含其存储的数据块信息。一个数据节点对应一台机器。HDFS基本概念•客户端•图中,连线表示两者之间存在通信,箭头一方表示接收请求,没有箭头的一端表示发起请求的一方;图中的黑色细线表示控制消息的通路,红色粗线表示数据消息的通路HDFS基本概念•数据副本每个文件的数据块大小和副本系数都是可配置的,副本系数可以在文件创建的时候指定,也可以在之后改变。存放规则:一个副本存放在本地机架的节点上,一个副本放在同一机架的另一个节点上,最后一个副本放在不同机架的节点上。HDFS基本概念•元数据的持久化EditLog:事务日志FsImage:整个文件系统的名字空间,包括数据块到文件的映射、文件的属性等Checkpoint:检查点只发生在Namenode启动时,在不久的将来将实现支持周期性的检查点。HDFS基本概念•通信机制NameNode永远不会主动的向其它组件发起请求.控制消息的传输都基于它自实现的RPC模块,RPC模块会对两个需要通信的Node之间各创建一个socket,这两个Node之间的所有的控制消息都通过这对socket进行传输;对于RPC的client一端来说,会有两个线程参与到这个过程中。一个线程是调用本次RPC的线程,它会将消息写入到socket中,然后就执行wait()阻塞住;另一个线程则是RPC模块内部负责该socket读的工作,它从socket中读取消息,然后执行notify()唤醒阻塞线程数据消息的传输,每个DataNode在启动的时候会创建一个线程DataXceiverServer来专门负责block数据的读写的链接。而DataXceiverServer做的事情很简单--一旦有一个连接,就创建一个新的DataXceiver来处理这个连HDFS基本概念•机架大型Hadoop集群是以机架的形式来组织的,同一个机架上不同节点间的网络状况比不同机架之间的更为理想。NameNode设法将数据块副本保存在不同的机架上以提高容错性。Hadoop允许集群的管理员通过配置dfs.network.script参数来确定节点所处的机架。...