hadoop管理工具:
一,dfsadmin工具
dfsadmin 工具用途比较广,既可以查找HDFS状态信息,又可以在HDFS上执行管理操作,以hdfs dfsadmin形式调用,且需要超级用户权限
二, 文件系统检查工具fsck
fsck检查HDFS中问文件的健康状况,该工具会查找那些在所有datanode中缺失的块以及过多或过少的复本块
%hdfs fsck /
fsck 工具从给定的路径开始循环遍历文件系统的命名空间,并检查他所找到的文件
注意:fsck是从namenode获取信息,并不与datanode进行交互操作,因此并不真正获得块数据
查找文件的数据块
%hdfs fsck /user/tom/part-00007 -files -blocks -racks
参数:-files 显示第一行信息,包括文件名称,大小,块数量和健康状况
-blocks 描述文件中各个块的信息,每个块一行
-racks 显示各个块的机架位置和datanode位置
三,datanode块扫描器
各个datanode 运行一个块扫描器,定期检查本节点上的所有块,从而在客户端读到坏块之前及时修复和检测坏块,扫描器使用节流机制,即扫描器工作时占用一部分磁盘带宽
设置 dfs.datanode.scan.period.hours 设置扫描周期
四,均衡器
均衡器是hadoop的一个守护进程,将块从忙碌的datanode 移至空闲的datanode,重新分配块
启动均衡器
%start-balancer.sh
hdfs-site.xml中设置dfs.datanode.balance.bandwidthPerSec 设置均衡器可以使用的带宽
hadoop监控:
hadoop所有的守护进程都会产生日志
一,设置日志级别:
通过 守护进程网页/logLevel目录下来改变log4j日志名称级别
为所有以给定前缀开始的类包启用日志: 1)http://服务/logLevel 2)命令:%hadoop daemonlog -setlevel 守护进程服务:端口 设置选项 日志级别
获取栈追踪:
hadoop守护进程提供一个网页 网页界面/stacks目录 对正在守护进程的JVM中运行着的线程执行线程转存储(thread dump)
委任和解除节点:
向集群添加新节点步骤:
1)将新节点的网络地址添加到include文件
2)运行以下指令,将审核过的一系列datanode集合更新至namenode信息中
%hdfs dfsadmin -refreshNodes
3) 运行以下指令,将审核过的一系列节点管理器更新至资源管理器
%yarn rmadmin -refreshNodes
4) 以新节点更新slaves文件
5)启动新的datanode 和 节点管理器
6)检查新的datanode 和 节点管理器是否都出现在网页界面中
解除旧节点步骤如下:
1)将待解除节点的网络地址添加到exclude文件中,不更新include文件
2)执行以下指令,使用一组新的datanode来更新namenode设置
%hdfs dfsadmin -refreshNodes
3)更新资源管理器设置
%yarn rmadmin -refreshNodes
4)转到网页界面,查看待解除datanode状态是否变为“正在解除”
5)datanode状态变为“解除完毕”,表明所有块复制完成,关闭已经解除节点
6)从include文件中移除这些节点,运行以下命令
%hdfs dfsadmin -refreshNodes
%yarn rmadmin -refreshNodes
7)从slave文件中移除节点
集群升级步骤:
1)执行升级任务前,确保前一升级已经定妥
2)关闭yarn ,mapreduce 守护进程
3)关闭HDFS,备份namenode目录
4)在集群和客户端安装新版本hadoop
5)使用-upgrade期待HDFS
%$NEW_hadoop_home/bin/start-dfs.sh -upgrade
6)等待升级完成
%NEW_hadoop_home/bin/hdfs dfsadmin -upgradeProgress status
7)检验HDFS是否正常运行
8)启动yarn mapreduce守护进程
9)回滚或定妥升级任务
回滚:
%$NEW_hadoop_home/bin/stop-dfs.sh
%$OLD_hadoop_home/bin/start-dfs.sh -rollback
在执行新的升级任务之前,必须执行这一步:
%$NEW_hadoop_home/bin/hdfs dfsadmin -finalizeUpgrade
%$NEW_hadoop_home/bin/hdfs dfsadmin -upgradeProgress status