fsimage文件丢失_FsImage Analyse Tool

FsImage Analyse Tool

该工具提供自动化解析HDFS集群FSImage文件,并解析成文本文件存储在HDFS中;解析后的信息通过Hive映射成表,并通过Hive进行相关信息统计,使用有数生成相关报表。

该工具包含两部分:

NameNode节点上传FSImage文件到HDFS指定目录中。

通过Yarn Application下载指定HDFS上的FSImage到本地机器进行分析,把分析结果上传到HDFS中。

NameNode节点采集FSImage

HDFS有提供接口(dfsadmin -fetchImage)下载FSImage到本地,但是其存在两个问题:

dfsadmin需要管理员身份,也就是需要hdfs.keytab,按照目前运维规范来说不合适。

该接口是从Active NameNode节点下载FSImage,这对Active NameNode有一定的负载。

针对以上的两个问题,采用在NameNode节点配置Crontab定时调用脚本把本地FSImage上传到HDFS指定目录中的方式。采集的流程如下:

检查本机NameNode是否为Standby,如果不是Standby,结束任务。

从配置文件中获取NameNode的元数据存放目录,获取该目录下的FSImage文件。

根据每个FSImage的生成时间戳,拼接HDFS存储目录:

如果未上传到HDFS,则上传。

上传完成后,把目录属主给到指定用户。

使用方式

依赖:HDFS Client

环境变量:HADOOP_HOME

命令:

sh upload-fsimage.sh

举例:

sh upload-fsimage.sh hdfs://hz-cluster6/fsimage smilodon hadoop

Crontab:建议crontab设置为10分钟执行一次。

目前FSImage保存2个副本,正常是一小时生成一个副本,在繁忙时间会更短,所以10分钟一次可以保证不遗漏FSImage。

FSImage分析成文本任务

该任务是Yarn类型脚本任务,从Yarn申请Container,在Container启动脚本任务,下载FSImage到本地并分析,结束后上传分析结果到HDFS中。

每个Container资源需求较少,1 core,1 GB内存即可。可以启动多个Container为多个FSImage进行并发分析。

Container启动后会下载Hadoop 指定集群的配置文件,可以在一个Yarn集群分析所有线上集群的FSImage。

例如:在北京集群启动任务,去分析重庆、南京、杭州等所有集群的FSImage。

使用方式

依赖:Yarn Client(有版本依赖,2.7.3集群需要2.7.3的客户端)

环境变量:fsimage-env.sh定义的变量

命令:sh fsimage-daemon.sh \ \

举例:

sh fsimage-daemon.sh http://repo.xxx.org/dev_packages/common/hadoop/cluster6-1.0.0.tar.gz hdfs://cluster3/fsimage hdfs://cluster6/fsimage/cluster3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值