美文网首页
FsImage Analyse Tool

FsImage Analyse Tool

作者: sparkle123 | 来源:发表于2021-01-07 01:12 被阅读0次

    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指定目录中的方式。采集的流程如下:

    1. 检查本机NameNode是否为Standby,如果不是Standby,结束任务。
    2. 从配置文件中获取NameNode的元数据存放目录,获取该目录下的FSImage文件。
    3. 根据每个FSImage的生成时间戳,拼接HDFS存储目录:<RemoteDir/YYYY/MM/DD/HH-MM-SS>
    4. 如果未上传到HDFS,则上传。
    5. 上传完成后,把目录属主给到指定用户。

    使用方式

    依赖:HDFS Client

    环境变量:HADOOP_HOME

    命令:
    sh upload-fsimage.sh <fsimage_storage_dir> <dir_user> <dir_group>

    举例:
    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 \<hadoop-conf-path> \<fsimage_input_path> <fsimage_output_path>

    举例:
    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

    相关文章

      网友评论

          本文标题:FsImage Analyse Tool

          本文链接:https://www.haomeiwen.com/subject/ubnxnktx.html