HDFS的体系架构
通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍。基本涵盖了Hadoop分布式平台的全部技术核心。
HDFS的体系架构
整个Hadoop的体系结构主要是通过HDFS来实现对分布式存储的底层支持,并通过MR来实现对分布式并行任务处理的程序支持。
HDFS採用主从(Master/Slave)结构模型。一个HDFS集群是由一个多个Namenode和多个DataNode组成的(hadoop2.2以后支持多个Namenode)NameNode作为主server。管理文件系统命名空间和client对文件的訪问操作。
DataNode管理存储的数据。
HDFS支持文件形式的数据。
从内部来看。文件被分成若干个数据块,这若干个数据块存放在一组DataNode上。NameNode运行文件系统的命名空间,如打开、关闭、重命名文件或文件夹等,也负责数据块到详细DataNode的映射。DataNode负责处理文件系统client的文件读写,并在NameNode的统一调度下进行数据库的创建、删除和复制工作。
NameNode是全部HDFS元数据的管理者。用户数据永远不会经过NameNode。
文件写入:
1) Client向NameNode发起文件写入的请求。
2) NameNode依据文件大小和文件块配置情况,返回给Client它管理的DataNode的信息。
3) Client将文件划分为多个block,依据DataNode的地址,按顺序将block写入DataNode块中。
文件读取:
1) Client向NameNode发起读取文件的请求。
2) NameNode返回文件存储的DataNode信息。
3) Client读取文件信息。
HDFS作为分布式文件系统在数据管理方面可借鉴点:
文件块的放置:一个Block会有三份备份,一份在NameNode指定的DateNode上,一份放在与指定的DataNode不在同一台机器的DataNode上,一根在于指定的DataNode在同一Rack上的DataNode上。
备份的目的是为了数据安全。採用这样的方式是为了考虑到同一Rack失败的情况,以及不同数据拷贝带来的性能的问题。
关于Rack的介绍:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843015.html