搭建好Hadoop集群后,需要通过一些措施和方法,来保障集群的平衡运行。下面介绍Hadoop管理中会用到的相关概念或方法。
1 HDFS
1.1 永久性数据结构
1.1.1 Namenode的目录结构
hadoop@hhx247:/data/hadoop/hdfs/name$ ll current/
total 31812
-rw-rw-r--. 1 hadoop hadoop 15008 Jul 16 10:07 edits
-rw-rw-r--. 1 hadoop hadoop 32505856 Aug 7 16:39 edits.new
-rw-rw-r--. 1 hadoop hadoop 39367 Jul 16 10:02 fsimage
-rw-rw-r--. 1 hadoop hadoop 8 Jul 16 10:02 fstime
-rw-rw-r--. 1 hadoop hadoop 101 Jul 16 10:02 VERSION
1.1.2 文件系统映像和编辑日志
Fsimage文件:是HDFS元数据的一个永久性检查点。
Edits文件:编辑日志,在每次执行写操作之后,且在向客户端发送成功代码之前,编辑日志都需要更新和同步,以确保任何操作都不会因为机器故障而丢失。
1.1.3 SecondNamenode的目录结构
为namenode创建检查点数据,还拥有一份检查点数据,可用于namenode异常时恢复。
1.1.4 Datanode的目录结构
1.2 安全模式
Hadoop在启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作,此时,namenode运行在安全模式下,对于客户端来说,只能是只读的。
在进行集群维护和升级时,必须进入安全模式,确保数据在指定时间段内是只读的。
1.2.1 进入和离开安全模式
./hadoop dfsadmin –safemode get
./hadoop dfsadmin –safemode wait
./hadoop dfsadmin –safemode enter
./hadoop dfsadmin –safemode leave
1.3 日志审计
HDFS的日志能够记录所有文件系统的访问请求,但默认情况下是没有启动的。如果有需要,可以启动该特性。
2 工具
2.1 dfsadmin工具
dfsadmin工具是多用途的,既可查找HDFS状态信息,又可在HDFS上执行管理操作。调用形式是hadoop dfsadmin。
2.2 fsck工具
hadoop提供fsck工具来检查HDFS中文件的健康状况。该工具会查找那些所有datanode中均缺失的块以及过少或过多复本的块。
运行格式:./hadoop fsck /
2.3 datanode块扫描器
各个datanode运行一个块扫描器,定期检测本节点上的所有块,从而在客户端读到坏块之前及时地检测和修复坏块。
默认情况下,块扫描器每隔三周就会检测块,这个周期可以通过dfs.datanode.scan.period.hours属性设置。
2.4 均衡器
随着时间推移,各个节点上的块会分布得越来越不均衡。不均衡的集群会降低mapreduce的本地性,导致部分节点相对更为繁忙。应该避免出现这种情况。
另外,新增节点或删除节点时,也需要运行均衡器来均衡各节点的数据块。
3 监控
主要监控集群的守护进程,包括namenode、secondnamenode、jobtracker、datanode、tasktracker。其中,在大型集群中,datanode、tasktracker经常容易出现故障。
3.1 日志
所有的守护进程都会产生日志文件,这些文件非常有助于查明系统中发生的事件。
3.2 Ganglia
Ganglia是一个针对超大规模集群的开源的分布式监控系统,运行之后仅消耗各个节点上很少的资源。Ganglia通过GangliaContext收集度量,例如CPU和内存的使用情况,用户也可以将Hadoop度量添加到Ganglia。
4 维护
4.1 日常管理过程
4.1.1 元数据备份
如果namenode的永久性元数据丢失或损坏,则整个文件系统无法使用。因此,元数据备份非常关键。
可以在系统中分别保存若干份不同时间的备份(例如:1小时前、1天前、1周前),以保护元数据。
4.1.2 数据备份
尽管HDFS充分考虑了如何可靠地存储数据,但仍然需要考虑对数据的备份。Hadoop中存储着海量数据,判断哪些数据需要备份,以及在哪里备份就极具有挑战性。关键点在于为数据划分不同优先级。
那些无法重新产生的数据,这些数据对业务非常关键,属于最高优先级。另外,能够重新产生的数据和
4.1.3 Fsck工具
建议定期地在整个文件系统上运行HDFS的fsck(文件系统检查)工具(例如:每天执行),主动查找丢失的或损坏的块。
4.1.4 文件系统均衡器
定期运行均衡器工具,保持文件系统的各个datanode比较均衡。
4.2 委任和解除节点
4.2.1 委任新节点
4.2.2 解除旧节点
4.3 升级