首页 理论教育HDFS简介及相关技术,大数据挖掘与医药应用

HDFS简介及相关技术,大数据挖掘与医药应用

【摘要】:DataNode是HDFS文件系统中保存数据的节点。块是HDFS中的存储单位,默认为64MB。错误检测和快速、自动恢复是HDFS的重要特点。大规模数据集,运行在HDFS上的应用具有很大的数据集。HDFS的体系结构如图5-7所示。图5-7HDFS的体系结构4.HDFS的相关技术文件命名空间,HDFS使用的系统结构是传统的层次结构。权限管理,HDFS支持文件权限控制,但是目前的支持相对不足。一旦NameNode失效,将导致整个HDFS集群无法正常工作。HDFS的设计目标之一是具有高容错性。

1.HDFS简介

HDFS(Hadoop Distributed FileSystem,简称HDFS)是Hadoop架构下的分布式文件系统。

HDFS是Hadoop的一个核心模块,负责分布式存储和管理数据,具有高容错性、高吞吐量等优点,并提供了多种访问模式。HDFS能做到对上层用户的绝对透明,使用者不需要了解内部结构就能得到HDFS提供的服务。并且,HDFS提供了一系列的API,可以让开发者和研究人员快速编写基于HDFS的应用。

Metadata是元数据,元数据信息包括名称空间、文件到文件块的映射、文件块到DataNode的映射三部分。

NameNode是HDFS系统中的管理者,负责管理文件系统的命名空间,维护文件系统的文件树及所有的文件和目录的元数据。

Secondary NameNode的作用是以备NameNode发生故障时进行数据恢复。

DataNode是HDFS文件系统中保存数据的节点。

Client是客户端,HDFS是文件系统的使用者。

块是HDFS中的存储单位,默认为64MB。

2.HDFS的特点

高效硬件响应,HDFS可能由成百上千的服务器所构成,每个服务器上都存储着文件系统的部分数据。错误检测和快速、自动恢复是HDFS的重要特点。流式数据访问,运行在HDFS上的应用和普通的应用不同,需要流式访问它们的数据集。大规模数据集,运行在HDFS上的应用具有很大的数据集。简单一致性模型,HDFS应用采用“一次写入多次读取”的文件访问模型。异构软硬件平台间的可移植性,HDFS在设计的时候就考虑到平台的可移植性,这种特性方便了HDFS作为大规模数据应用平台的推广。

3.HDFS的体系结构

HDFS采用了主从结构构建,NameNode为Master(主),其他DataNode为Slave(从)。HDFS的体系结构如图5-7所示。

图5-7 HDFS的体系结构

4.HDFS的相关技术

文件命名空间,HDFS使用的系统结构是传统的层次结构。但是,在做好相应的配置后,对于上层应用来说,就几乎可以当成普通文件系统来看待,忽略HDFS的底层实现。

权限管理,HDFS支持文件权限控制,但是目前的支持相对不足。HDFS采用了Unix权限码的模式来表示权限,每个文件或目录都关联着一个所有者用户和用户组以及对应的权限码rwx。

数据管理。Name Node是HDFS的元数据计算机,在其内存中保存着整个分布式文件系统的两类元数据:文件系统的命名空间,即系统目录树;数据块副本与DataNode的映射,即副本的位置。

单点故障问题。一旦NameNode失效,将导致整个HDFS集群无法正常工作。Secondary NameNode可以部分解决这个问题。除了Secondary NameNode,其他相对成熟的解决方案还有Backup Node方案、DRDB方案、AvatarNode方案。

数据副本。HDFS是用来为大数据提供可靠存储的,这些应用所处理的数据一般保存在大文件中。HDFS存储文件时,会将文件分成若干个块,每个块又会按照文件的副本因子进行备份。

通信协议。HDFS是应用层的分布式文件系统,节点之间的通信协议都是建立在TCP/IP协议之上的。HDFS有三个重要的通信协议:Client Protocol、Client Data Node Protocol和Data Node Protocol。

容错。HDFS的设计目标之一是具有高容错性。集群中的故障主要有三类:Node Server故障、网络故障和脏数据问题。

Hadoop Metrics插件。Hadoop Metrics插件是基于JMX(Java Management Extensions,即Java管理扩展)实现的一个统计集群运行数据的工具,能让用户在不重启集群的情况下重新进行配置。

5.Common简介(www.chuimin.cn)

Common在Hadoop架构中的位置。从Hadoop 2.0版本开始,Hadoop Core模块更名为Common。Common为Hadoop的其他模块提供了一系列文件系统和通用文件包。Common为在通用硬件上搭建云计算环境提供基本服务,同时为软件开发提供了API。Hadoop Common如图5-8所示。

图5-8 Hadoop Common

6.HDFS的常用命令

$bin/hdfs显示帮助

$bin/hdfs dfs[参数]文件操作,与$bin/Hadoop fs的参数完全一样

$bin/hdfs namenode-format格式化NameNode

$bin/hdfs getconf从配置文件中获取配置信息

$bin/hdfs fsck[路径][参数]处理损坏的文件

-list-corruptfileblocks输出损坏的文件及丢失的块

-move将文件移动到/lost+found目录

-delete删除损坏的文件

-openforwrite输出以写方式打开的文件

-files输出该目录及子目录下所有文件的状态

-files-blocks输出该目录及子目录下所有文件的块信息

-files-blocks-locations输出该目录及子目录下所有文件在DataNode的存储信息

-files-blocks-racks输出该目录及子目录下所有文件机架感知信息

$bin/hdfs dfsadmin-report查看HDFS的基本统计信息

$bin/hdfs dfsadmin-safemode〈enter|leave|get|wait〉配置安全模式

$bin/hdfs dfsadmin-saveNamespace将内存信息保存到磁盘,并重置edits文件

$bin/hdfs dfsadmin-refreshNodes刷新节点和排除文件

$bin/hdfs dfsadmin-setBalancerBandwidth[byte per second]设置负载均衡带宽

$bin/hdfs secondarynamenode[参数]操作SecondaryNameNode

$bin/hdfs balancer平衡集群中DataNode的数据