云计算 频道

云计算技术介绍:神奇的小飞象Hadoop

  3. 基本架构——Hadoop 是如何构成的

  Hadoop 主要由HDFS(Hadoop Distributed File System)和MapReduce 引擎两部分组成。最底部是HDFS,它存储Hadoop 集群中所有存储节点上的文件。HDFS 的上一层是MapReduce 引擎,该引擎由JobTrackers 和TaskTrackers组成。

  3.1 HDFS

  HDFS 可以执行的操作有创建、删除、移动或重命名文件等,架构类似于传统的分级文件系统。需要注意的是,HDFS 的架构基于一组特定的节点而构建(参见图2),这是它自身的特点。HDFS 包括唯一的NameNode,它在HDFS 内部提供元数据服务;DataNode 为HDFS 提供存储块。由于NameNode 是唯一的,这也是HDFS 的一个弱点(单点失败)。一旦NameNode 故障,后果可想而知。正所谓皮之不存,毛将焉附?

基本架构——Hadoop 是如何构成的(1)
▲图2

  制块上。通常的策略是,对于最常见的3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。

  请注意,只有表示DataNode 和块的文件映射的元数据经过NameNode。当外部客户机发送请求要求创建文件时,NameNode 会以块标识和该块的第一个副本的DataNode IP 地址作为响应。此外,NameNode 还会通知其他将要接收该块副本的DataNode。

基本架构——Hadoop 是如何构成的(1)
▲图3

  NameNode 在FsImage 文件中存储所有关于文件系统名称空间的信息,该文件和一个包含所有事务的记录文件将存储在NameNode 的本地文件系统上。FsImage 和EditLog 文件也有副本,以防止文件损坏或NameNode 系统故障。

  DataNode

  Hadoop 集群包含一个NameNode 和N(N>=1)个DataNode。DataNode通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。通常,机架内部节点之间的传输速度快于机架间节点的传输速度。

  DataNode 响应来自HDFS 客户机的读写请求,也响应NameNode 发送的创建、删除和复制块的命令;NameNode 获取每个DataNode 的心跳消息,每条消息包含一个块报告,NameNode 据此验证块映射和其他文件系统的元数据。如果 DataNode 无法发送心跳消息,NameNode 将采取修复措施,重新复制在该节点上丢失的块。

0
相关文章