离线分析fsimage文件进行数据深度分析

news2024/11/25 4:22:12

以离线分析FsImage文件进行数据深度分析

整个方案的基本架构:

在这里插入图片描述

分析FsImage文件基本架构图

  FsImage文件时HDFS存放在NameNode中的镜像文件,里面包括了整个HDFS集群的目录和文件信息,(类似于一个索引目录+部分数据的文件),而且HDFS提供了命令可以将FsImage文件转成CSV文件,可以用它在Hive上进行分析。目前fsiamge一般都是几十g的级别。

  FsImage字段一览

字段名中文
Path目录路径
Replication备份数 其实就是所有的存储份数
ModificationTime最后修改时间 创建
AccessTime对于文件来说是最后访问时间,对于文件夹来说就是创建时间
PreferredBlockSize首选块大小 byte
BlocksCount块 数eeeeeeeeee
FileSize文件大小 byte
NSQUOTA名称配额 限制指定目录下允许的文件和目录的数量。
DSQUOTA空间配额 限制该目录下允许的字节数
Permission权限
UserName用户
GroupName用户组

  hdfs get命令

hdfs dfs -get /user/bigdata/fsimage_0000000010470664202  /opt/fsimage_001

  hdfs vio命令:

hdfs oiv -i /opt/fsimage_001 -o /opt/fsimage_001.csv -p Delimited -delimiter ","

  Linux sed命令: 在每行数据末尾后面新增,HDFS

sed -i s/$/,HDFS/g fsimage_001.csv

  hdfs put命令

hdfs dfs -put /opt/fsimage_001.csv  /user/hdfsser/hdfs_fsimage/fsimage_001.csv

Hive中的相关表

1. FsImage表 存放来自FsImage的初始数据

字段名类型备注
Pathstring目录路径
Replicationstring备份数
ModificationTimestring最后修改时间
AccessTimestringstring
PreferredBlockSizestring首选块大小 byte
BlocksCountstring块 数
FileSizestring文件大小 byte
NSQUOTAstring名称配额 限制指定目录下允许的文件和目录的数量。
DSQUOTAstring空间配额 限制该目录下允许的字节数
Permissionstring权限
UserNamestring用户
GroupNamestring用户组
clustersourcestring数据集群来源

2. inhive 存放Hive产生的文件

字段名类型备注
Pathstring完成目录路径
dbnamestringHive库名
tablenamestringHive表名
FileSizestring文件大小 byte
UserNamestring用户
clustersourcestring数据集群来源

3. nonhive 存放非Hive的文件

字段名类型备注
Pathstring目录路径 不包含文件名
filenamestring文件名
FileSizestring文件大小 byte
UserNamestring用户
clustersourcestring数据集群来源

Hive数据交换语句中涉及到的函数

字符串长度函数:length

  语法: length(string A)
  返回值: int
  说明:返回字符串A的长度

字符串反转函数:reverse

  语法: reverse(string A)
  返回值: string
  说明:返回字符串A的反转结果

字符串截取函数:substr,substring

  语法: substr(string A, int start),substring(string A, int start)
  返回值: string
  说明:返回字符串A从start位置到结尾的字符串

字符串截取函数:substr,substring

  语法: substr(string A, int start, int len),substring(string A, intstart, int len)
  返回值: string
  说明:返回字符串A从start位置开始,长度为len的字符串

分割字符串函数: split

  语法: split(string str, string pat)
  返回值: array
  说明:按照pat字符串分割str,会返回分割后的字符串数组

向下取整函数

  语法:floor(double d)
  返回值:bigint
  说明:返回<=d的最大bigint值;

向下取整函数

  语法:ceil(double d)
  返回值:bigint
  说明:返回>=d的最小bigint 值;

部分SQL语句示例

  • 启动Hive,直接使用hive命令
    $ hive;

  • 进入对应的数据库 use hdfsser;
    hive> use hdfsser;

  • 查询出插入inhive表的语句

INSERT INTO TABLE inhive
SELECT path,
       split(path,'\\/')[5],
       split(path,'\\/')[6],
       FileSize,
       UserName,
       clustersource
FROM fsimage
WHERE split(path,'\\/')[3]= 'hive' and split(path,'\\/')[4] = 'warehouse';
  • 查询出插入nonhive表的语句
INSERT INTO TABLE nonhive
SELECT CASE
           WHEN filesize='0' THEN path
           ELSE substr(path, 0, length(path)-1-length(reverse(split(reverse(path),'\\/')[0])))
       END,
       CASE
           WHEN filesize='0' THEN NULL
           ELSE reverse(split(reverse(path),'\\/')[0])
       END ,
       FileSize,
       UserName,
       clustersource
FROM fsimage
WHERE size(split(path,'\\/'))<=3
  OR split(path,'\\/')[3] <> 'hive';

小文件分析

小文件的定义

  • 判断小文件的规则:
    1、文件大小<1MB;(最好支持配置或者sql脚本传参)
    2、目录下文件数量>10000(最好支持配置或者sql脚本传参)
  • 需要治理哪些用户的小文件规则:
    1、hive小文件数大于100W的用户;|
    2、hive小文件占比超过30%的用户。(hive小文件/hive文件总数)

未定问题

  • 文件目录第三级目录为hive,第四级目录不为warehouse的数据存放位置。
  • [目录下文件>10000]目录指的是几级目录,目录的规则需要根据治理目标再确认。

其他分析

在文件大小的不同区间进行分析,单位大小MB

(0-1),[1,10),[10,128),[128-512),[512,+∞)

各个区间下的文件数量,目录数量

  • 特征1 文件的数量远大于目录数量
  • 特征2 某个目录下文件数量过多
  • 特征3 目录的组成有明显的序列,日志log/logs 日期yyyy-MM-dd 临时tmp temp checkpoint等等的

两大考量点 一个是文件数量一个是文件或目录类型

  • 文件数量指的是 单个目录下小文件的数量,可以定义一个阀值,目录小文件下超过阀值的就肯定需要治理,阀值可以是1000,1W,10W
  • 文件或目录类型指的是 一些目录或者文件是特定任务或者临时产生使用的。比如日志文件(log,logs)、临时文件或者目录(tmp,temp,temp_transfer),Flink,Spark任务(checkpoint),长年未访问的文件(这个指文件)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/663211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【严重】VMware Aria Operations for Networks 远程代码执行漏洞(存在POC)

漏洞描述 VMware Aria Operations for Networks (前名为vRealize Network Insight)是 VMware 公司提供的一款网络可视性和分析工具&#xff0c;用于优化网络性能或管理各种VMware和Kubernetes部署。 VMware Aria Operations for Networks 6.x版本中由于 createSupportBundle…

How to fix the global rice crisis 如何应对全球稻米危机 | 经济学人20230401版双语精翻

4月1日《经济学人》周报封面即社论区&#xff08;Leaders&#xff09;精选文章&#xff1a;《如何应对全球稻米危机》&#xff08;How to fix the global rice crisis&#xff09;。 “民以食为天”语出《孟子公孙丑上》&#xff0c;强调&#xff1a;人民的生命福祉和国家的繁荣…

每日一练 | 华为认证真题练习Day62

1、广播地址是网络地址中主机位全部置为1的一种特殊地址&#xff0c;它也可以做为主机地址使用。 A. True B. False 2、如图所示&#xff0c;如果管理员希望能够提升此网络的性能&#xff0c;则下面哪一种方法最合适&#xff1f; A. 使用交换机把每台主机连接起来&#xff0c…

java8 (jdk 1.8) 新特性——Stream ApI以及具体实例

在java8 中&#xff0c;有两个最重要的改变&#xff0c;一个就是之前了解的Lmbda java8 (jdk 1.8) 新特性——Lambda ,还有一个就是Stream Api 1. 什么是Stream API 简单来说就是一个类库&#xff0c;里边有一些方法方便我们对集合数据进行操作&#xff0c;就好像使用 SQL 语…

是单例模式,不是单身

✍&#x1f3fc;作者&#xff1a;周棋洛&#xff0c;计算机学生 ♉星座&#xff1a;金牛座 &#x1f3e0;主页&#xff1a;点击学习更多 &#x1f310;关键&#xff1a;JavaScript 单例 设计模式 单例模式的定义是&#xff1a;保证一个类仅有一个实例&#xff0c;并提供一个访问…

数据结构05:树与二叉树[C++][线索二叉树:先序、中序、后序]

图源&#xff1a;文心一言 考研笔记整理1.4W字&#xff0c;小白友好、代码先、中序可跑&#xff0c;后序代码有点问题仅作记录~~&#x1f95d;&#x1f95d; 第1版&#xff1a;查资料、写BUG、画导图、画配图~&#x1f9e9;&#x1f9e9; 参考用书&#xff1a;王道考研《2024…

领域事件解读

文章目录 EventBus简介DDD领域事件架构简析快速入门pom依赖bean配置PublisherSubscriber 设计原理PublisherSubscriber 事件总线(EventBus)&#xff0c;设计初衷是解耦系统模块&#xff0c;将系统中的各类业务操作抽象为事件模型&#xff0c;我们把产生事件的部分称之为事件的发…

电容笔哪个厂家的产品比较好?时下热门的平替苹果笔

苹果原装的Pencil&#xff0c;在市场上可是炙手可热的&#xff0c;而且苹果的这款pencil&#xff0c;也不是什么便宜的。当然&#xff0c;你可以用这个苹果笔搭配iPad&#xff0c;不过&#xff0c;如果你不想花很多钱&#xff0c;那就可以换一支普通的平替电容笔。就当前的技术…

一篇搞定C语言操作符(详解含示例)

目录 一.操作符是什么&#xff1f; 基本特征 语义 优先级 结合性 二.操作符的分类 三.操作符各类详解 1.算数操作符&#xff08; - * / %&#xff09; &#xff08;1&#xff09;优先级&#xff1a; &#xff08;2&#xff09;除法操作符&#xff08;…

数学基础-标量,向量,张量

前言 数学中&#xff0c;如何描述事务&#xff0c;以棍子为例子&#xff1a; 棍子的长度棍子方向棍子转向… 标量 单纯的形容事务的一个特征&#xff0c;如果体积&#xff0c;长度。 向量 指具有大小&#xff08;magnitude&#xff09;和方向的量。它可以形象化地表示为带…

利用腾讯云推流做7*24小时云直播

早在10年前&#xff0c;直播刚刚火的的时候&#xff0c;我就写过一个基于RTMP推流的直播工具&#xff0c;但没有利用起来&#xff0c;一直荒废了。想想真是可惜&#xff0c;不过谁怪咱精力有限切没有商业头脑呢。 最近刷B站&#xff0c;一位UP分享了无人值守的云直播方案&…

21JS12——内置对象

文章目录 一、内置对象二、查文档1、 MDN2、如何学习对象中的方法 三、Math对象1、Math对象2、案例-封装自己的数学对象3、Math的几个方法&#xff08;1&#xff09;绝对值&#xff08;2&#xff09;三个取整方法&#xff08;3&#xff09;随机数方法random&#xff08;&#x…

【深度学习】3-2 神经网络的学习- mini-batch学习

机器学习使用训练数据进行学习。使用训练数据进行学习&#xff0c;就是针对训练数据计算损失函数的值&#xff0c;也就是说,训练数据有100个的话&#xff0c;就要把这 100个损失函数的总和作为学习的指标。 求多个数据的损失函数&#xff0c;要求所有训练数据的损失函数的综合…

INTERSPEECH2023|达摩院语音实验室入选论文全况速览

近日&#xff0c;语音技术领域旗舰会议INTERSPEECH 2023公布了本届论文审稿结果&#xff0c;阿里巴巴达摩院语音实验室有17篇论文被大会收录。 01 论文题目&#xff1a;FunASR: A Fundamental End-to-End Speech Recognition Toolkit 论文作者&#xff1a;高志付&#xff0c;…

基于 AntV G2Plot 来实现一个 堆叠柱状图 加 折线图 的多图层案例

前言 最近研究了一下antv/g2的组合图例&#xff0c;并尝试做了一个不算太难的组合图&#xff0c;下面介绍一下整个图里的实现过程。 最终效果图 先来看一下最终的效果图 该图表有两部分组成&#xff0c;一部分是柱状图&#xff0c;准确说是堆叠的柱状图&#xff0c;一个柱…

【TA100】图形 3.5 Early-z和Z-prepass

一、深度测试&#xff1a;Depth Test 1.回顾深度测试的内容 深度测试位于渲染管线哪个位置 ○ 深度测试位于逐片元操作中、模板测试后、透明度混合前 为什么做深度测试 ● 深度测试可以解决&#xff1a;物体的可见遮挡性问题 ○ 我们可以用一个例子说明 ■ 图的解释&…

windows应急整理

windows应急整理 Virustotal 网站分析恶意样本 BrowingHistoryView 查看浏览器所有历史记录,可能会请求攻击者的恶意网站或者下载东西 启动项检查 开机启动项文件夹 msconfig 注册表run 键值查看 启动项 临时文件检查,temp 目录权限特殊,容易成为被利用对象 %temp%查看 tem…

华为HCIP第一天---------RSTP

一、介绍 1、以太网交换网络中为了进行链路备份&#xff0c;提高网络可靠性&#xff0c;通常会使用冗余链路&#xff0c;但是这也带来了网络环路的问题。网络环路会引发广播风暴和MAC地址表震荡等问题&#xff0c;导致用户通信质量差&#xff0c;甚至通信中断。为了解决交换网…

C# WebSocketSharp 框架的用法

效果: 一、概述 WebSocketSharp 是一个 C# 实现 websocket 协议客户端和服务端,WebSocketSharp 支持RFC 6455;WebSocket客户端和服务器;消息压缩扩展;安全连接;HTTP身份验证;查询字符串,起始标题和Cookie;通过HTTP代理服务器连接;.NET Framework 3.5或更高版本(包括…