Hadoop

HDFS NameNode内存全景

在HDFS系统架构中,NameNode管理着整个文件系统的元数据,维护整个集群的机架感知信息和DataNode和Block的信息,Lease管理以及集中式缓存引入的缓存管理等等。从整个HDFS系统架构上来看,NameNode是最重要、最复杂也是最容易出现问题的地方。

NameNode概述

NameNode管理的HDFS文件系统的元数据分为两个层次:NameSpace管理层,负责管理文件系统中的树状目录结构以及文件与数据块之间的映射关系;块管理层,负责管理文件系统中文件的物理块与实际存储位置的映射关系(BlockMap)。

HDFS核心API编程案例

  • 删除HDFS集群中所有的空文件和空目录
  • 使用流的方式上传下载文件
  • 统计HDFS文件系统中文件大小小于HDFS集群中默认块大小的文件占比
  • 统计出HDFS文件系统中平均副本数

Hadoop HA集群搭建

HA:High Available,高可用。为什么需要HA机制?怎么配置HA?

为什么会有Hadoop HA机制

在HDFS集群中NameNode会存在单点故障(SPOF:A Single Point of Failure)问题:对于只有一个NameNode的集群,如果唯一的NameNode机器出现故障,比如宕机、软件硬件升级等。那么整个集群将无法使用,直到NameNode重新启动才会恢复。

所以在hadoop2.0之前,出现这种单节点故障问题是无法解决的;但是Hadoop HA机制的出现就很好的解决了这个问题,在一个典型的Hadoop HA集群中,使用两台单独的机器配置为NameNodes节点。在任何时间点,确保NameNodes中只有一个处于Active状态,另一个处在Standby状态。其中ActiveNameNode负责集群中所有的客户端的操作,StandbyNameNode仅仅充当备机,保证一旦ActiveNameNode出现问题能够快速切换。