最新要闻
- 全球热讯:电池级碳酸锂价格腰斩 电动车会降价吗?专家给出结论
- 环球速看:魔法氛围拉满!Redmi Note 12 Turbo哈利波特版图赏
- 不用带手机 抬手就能付!微信支付尝试推出微信刷掌服务
- 天天要闻:开发者危机!微软GitHub启动裁员:印度工程师团队几乎整体裁撤
- 全球微头条丨同款商超6元/瓶!特仑苏牛奶大促:2.93元/盒相当于半价
- 讯息:2023华大新高考联盟3月联考各科试题及答案!_老高考老教材
- 环球头条:【手慢无】速来占便宜!三星128GB存储卡仅需49.8元
- 全球热头条丨汽车雷达在无人陵园内显示全是人影:吓坏车主
- 985硕士男子失业半年 应聘道士35岁已超龄!做实习生都被拒:现送外卖
- 没污染!国内首款氢内燃机飞机成功首飞:中国自研
- 环球新资讯:内地特供的网游性价比神U!酷睿i7-13790F评测:游戏性能强于锐龙9 7950X
- 环球播报:海豚模拟器登陆Steam
- 全球实时:半场战报:踢疯了!梅西第38分钟戴帽 阿根廷5-0暂领先库拉索
- 环球热推荐:Epic独占结束!中国功夫游戏《师父》登陆Steam:139元起
- 全固态电池空间电荷层微观机理揭示
- 环球要闻:核心、显存砍得没法看!RTX 4060 Ti/4060要5月上市:3999元起超值?
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
干货分享|袋鼠云数栈离线开发平台在小文件治理上的探索实践之路
日常生产中 HDFS 上小文件产生是一个很正常的事情,同时小文件也是 Hadoop 集群运维中的常见挑战,尤其对于大规模运行的集群来说可谓至关重要。
(资料图)
数据地图是离线开发产品的基本使用单位,包含全部表和项目的相关信息,可以对表做相关的权限管理和脱敏管理操作,以及可以展示对应项目占用情况和其表的占用情况。数据地图可以帮助用户更好地查找、理解和使用数据。
本文将结合两者,和大家聊聊数据地图中的小文件治理应该怎么做。
小文件的危害
小文件通常指文件大小要比 HDFS 块大小还要小很多的文件,大量的小文件会给 Hadoop 集群的扩展性和性能带来严重的影响。
NameNode 在内存中维护整个文件系统的元数据镜像、用户 HDFS 的管理,其中每个 HDFS 文件元信息(位置、大小、分块等)对象约占150字节,如果小文件过多,会占用大量内存,直接影响 NameNode 的性能。相对地,HDFS 读写小文件也会更加耗时,因为每次都需要从 NameNode 获取元信息,并与对应的 DataNode 建立连接。如果 NameNode 在宕机中恢复,也需要更多的时间从元数据文件中加载。
同时,小文件会给 Spark SQL 等查询引擎造成查询性能的损耗,大量的数据分片信息以及对应产生的 Task 元信息也会给 Spark Driver 的内存造成压力,带来单点问题。此外,入库操作最后的 commit job 操作,在 Spark Driver 端单点做,很容易出现单点的性能问题。
数据地图中小文件治理的做法
存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode),块的大小默认为128MB,当文件大小为128时,Hadoop 集群的计算效率最高。因此对非分区表按表进行数据文件合并,使表/分区数据文件的大小接近128M,以此进行小文件的优化。
具体到数据地图中是怎么做的呢?
在离线开发平台中创建出来的表或者底层表都可以通过数据地图功能维护,我们每天会定时更新这些表的基本信息进行统一维护管理。
在数据地图中可以根据文件数量和占用存储创建相应的治理规则,按照每天每周或每月治理。
参数说明
· 规则名称:新建规则的名称
· 选择项目:小文件合并规则生效的项目
· 选择表:这里配置的是圈定需要合并的表范围,判断条件是 and,例如表的文件数量大于1000并且占用总存储小于10M时,才会对该表中的文件进行合并操作
· 治理时间:该规则的调度周期,例如每天的凌晨00:00~01:00进行小文件合并,注意如果小文件合并时间到了结束的时间,还没有合并完成,则会结束当前的合并,等待下次处理
根据治理规则查询出所有符合信息的表,判断该表是否为分区表。如果为非分区表则对该表进行文件治理,如果为分区表则按照分区进行治理,最后创建治理记录。
每天定时任务触发,根据告警记录查询记录中满足条件的表的基本信息状态。
● 小文件合并的具体步骤
1)备份文件
先创建临时路径,把文件复制到临时路径中去,再创建要合并的临时文件
2)小文件合并
执行 HDFS 的 fileMerge 请求合并文件
真正调用 hive-exec 方法处理,判断是否达到阈值合并文件
3)将合并的文件覆盖到原文件中去
判断如果合并完成,删除原路径下的数据,把临时路径修改为原来的真实路径
全部处理完成后,查询 rdos_file_merge_partition 表是否为异常信息打印,若不存在异常信息,更新治理记录表完成治理,并更新数据地图中的表信息
治理记录表把握整体的治理成功失败状态,分区信息治理信表维护了整个治理记录哪些表治理失败的记录,最后全量返回对应的是失败或成功状态。
· 分区信息治理信表:rdos_file_merge_partition
· 治理记录表:rdos_file_merge_record
最后把表结构放在下面,有兴趣的小伙伴可以自行查看:
CREATE TABLE `rdos_file_merge_partition` ( `id` int(11) NOT NULL AUTO_INCREMENT, `project_id` int(11) DEFAULT NULL COMMENT "项目id", `tenant_id` int(11) DEFAULT NULL COMMENT "租户id", `record_id` int(11) DEFAULT NULL COMMENT "合并记录id", `status` tinyint(1) DEFAULT NULL COMMENT "合并状态", `start_time` datetime DEFAULT NULL COMMENT "开始时间", `end_time` datetime DEFAULT NULL COMMENT "结束时间", `error_msg` longtext COMMENT "错误信息", `partition_name` varchar(255) DEFAULT NULL COMMENT "分区名", `copy_location` varchar(1024) DEFAULT NULL COMMENT "备份路径", `storage_before` varchar(255) DEFAULT NULL COMMENT "合并前占用存储", `storage_after` varchar(255) DEFAULT NULL COMMENT "合并后占用存储", `file_count_before` int(11) DEFAULT NULL COMMENT "合并前文件数量", `file_count_after` int(11) DEFAULT NULL COMMENT "合并后文件数量", `gmt_create` datetime DEFAULT NULL COMMENT "创建时间", `gmt_modified` datetime DEFAULT NULL COMMENT "修改时间", `is_deleted` tinyint(1) DEFAULT "0" COMMENT "是否删除 0:未删除,1 :已删除", PRIMARY KEY (`id`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT="小文件合并分区信息表";CREATE TABLE `rdos_file_merge_record` ( `id` int(11) NOT NULL AUTO_INCREMENT, `project_id` int(11) DEFAULT NULL COMMENT "项目id", `tenant_id` int(11) DEFAULT NULL COMMENT "租户id", `table_id` int(11) DEFAULT NULL COMMENT "合并hive表id", `table_name` varchar(255) DEFAULT NULL COMMENT "表名", `rule_id` int(11) DEFAULT NULL COMMENT "小文件合并规则id", `location` varchar(1024) DEFAULT NULL COMMENT "存储位置", `status` tinyint(1) DEFAULT NULL COMMENT "合并状态", `error_msg` longtext COMMENT "错误信息", `start_time` datetime DEFAULT NULL COMMENT "合并开始时间", `end_time` datetime DEFAULT NULL COMMENT "合并结束时间", `is_partition` tinyint(1) DEFAULT NULL COMMENT "是否是分区表", `count_before` int(11) DEFAULT NULL COMMENT "合并前文件数量", `count_after` int(11) DEFAULT NULL COMMENT "合并后文件数量", `create_user_id` int(11) DEFAULT NULL COMMENT "创建用户", `modify_user_id` int(11) DEFAULT NULL COMMENT "修改人id", `gmt_create` datetime DEFAULT NULL COMMENT "创建时间", `gmt_modified` datetime DEFAULT NULL COMMENT "修改时间", `is_deleted` tinyint(1) DEFAULT "0" COMMENT "是否删除 0:未删除, 1:已删除", `plan_time` datetime NOT NULL COMMENT "计划时间", PRIMARY KEY (`id`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT="小文件合并记录表";
《数据治理行业实践白皮书》下载地址:https://fs80.cn/380a4b
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szbky
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术qun」,交流最新开源技术信息,qun号码:30537511,项目地址:https://github.com/DTStack
关键词:
干货分享|袋鼠云数栈离线开发平台在小文件治理上的探索实践之路
全球热讯:电池级碳酸锂价格腰斩 电动车会降价吗?专家给出结论
环球速看:魔法氛围拉满!Redmi Note 12 Turbo哈利波特版图赏
不用带手机 抬手就能付!微信支付尝试推出微信刷掌服务
天天要闻:开发者危机!微软GitHub启动裁员:印度工程师团队几乎整体裁撤
全球微头条丨同款商超6元/瓶!特仑苏牛奶大促:2.93元/盒相当于半价
讯息:2023华大新高考联盟3月联考各科试题及答案!_老高考老教材
如何隐藏Apache版本号和其它敏感信息
容器安全之 Dockerfile 安全扫描
zookeeper的Leader选举源码解析
焦点要闻:前端设计模式——享元模式
每日观察!使用NSIS打包超大型软件的几个注意事项
环球头条:【手慢无】速来占便宜!三星128GB存储卡仅需49.8元
全球热头条丨汽车雷达在无人陵园内显示全是人影:吓坏车主
985硕士男子失业半年 应聘道士35岁已超龄!做实习生都被拒:现送外卖
没污染!国内首款氢内燃机飞机成功首飞:中国自研
环球新资讯:内地特供的网游性价比神U!酷睿i7-13790F评测:游戏性能强于锐龙9 7950X
环球播报:海豚模拟器登陆Steam
全球实时:半场战报:踢疯了!梅西第38分钟戴帽 阿根廷5-0暂领先库拉索
环球热推荐:Epic独占结束!中国功夫游戏《师父》登陆Steam:139元起
【天天时快讯】Native开发过程中容易忽略的注意事项
全球快播:【国际大宗商品早报】美豆反弹收涨近2% 伊拉克库尔德地区原油出口停顿支撑油价续涨
全固态电池空间电荷层微观机理揭示
环球要闻:核心、显存砍得没法看!RTX 4060 Ti/4060要5月上市:3999元起超值?
天天播报:大作《生化危机4重制版》发售 采用Denuvo正版加密 黑客发声:准备出手破解
天天快看点丨任天堂《塞尔达传说:王国之泪》限定版Switch发布!金黄手柄太酷炫
短讯!《最后生还者》PC版多半差评
每日消息!读SQL进阶教程笔记01_CASE表达式
快讯:成年子女不能与父母在酒店住同一标间引热议 太没道理?酒店回应
Spring整合Mybatis遇到的问题(一)
有关Mongodb 在windows上安装的问题
今头条!JNI知识点总结
天天日报丨【Visual Leak Detector】配置项 ReportTo
【Visual Leak Detector】配置项 SelfTest
环球观察:4个多月第一次!Intel Arc Pro专业显卡终于有了新驱动
当前最新:小米“退钱”了:27万小米空气净化器初代用户 每人899元
全球快报:小金刚手机杀到1999元 卢伟冰喊话友商:欢迎光明磊落竞争
全球播报:人体工学椅从没想过:自己真正的对手会是汽车
天天微资讯!日本海滩惊现大量乌贼尸体 绵延200米
通讯!青石板路图片(青石板规格)
微头条丨喊老公过时了!赵丽颖唐嫣孙俪都这样称呼另一半,网友:甜炸了
项目中如何对XSS统一处理
面向对象设计原则
instanceof的使用
GPT-4救了我狗的命
【全球快播报】你敢坐吗?滴滴能打到自动驾驶汽车了
环球看点!三爱健康集团(01889)发盈喜 预计2022年度股东应占溢利同比增加约223.6%至2922万元
世界头条:用gpt4训练一个简易真人代理
全球热头条丨【Visual Leak Detector】配置项 ReportFile
环球通讯!融创百亿美元境外债务重组成功在即 持债金额超30%的债权人小组已签订重组支持协议
环球新消息丨OpenAI创始人:AI可能毁灭人类 必须开发新技术来解决
焦点速递!美亚柏科:公司将对各类 AIGC 内容的检测、AI 生成文本的检测技术及产品进行布局
聚焦:免费Midjourney AI绘画Prompt提示词平台合集
NCNN 模型推理详解及实战
基于中断的字符串动态显示
全球热推荐:[NOI1999] 生日蛋糕
绿牌将会取消?网友:走好不送
一图看懂Note 12 Turbo:性价比进行到底 16+1TB仅售2599元
一加李杰:用户不会被蒙蔽 将旗舰体验普及到底
视讯!哈迷必备!Redmi Buds 4哈利波特版图赏
首发第二代骁龙7+!Redmi Note 12 Turbo图赏
设备树的概念(四):平台设备驱动和设备树
天天最资讯丨Apache iotdb-web-workbench 认证绕过漏洞(CVE-2023-24829)
Halcon学习教程(一) 之提取十字线中心 图像分割
甲流吃退烧药不退烧怎么办_吃了一粒退烧药多久可以喂奶
环球今日报丨卢伟冰:Note系列全球销量破3.2亿 进入全球单品十强
头条:马斯克为何没做出ChatGPT?揭秘OpenAI创始人的权力斗争
日本推出佛祖版ChatGPT:已经为20多万人解决烦恼
观天下!合资车还咋玩!奇瑞艾瑞泽5 GT上市:起售价仅7.99万
每日快报!Redmi Note 12 Turbo搭载超细四窄边直屏:边框窄至1.42mm!
热消息:一篇文章带你了解面积图
京沪杭等地近期明确将有序放开设摊、允许外摆
全球资讯:德创环保:宁波甬德拟以1.61亿元收购飞乐环保100%股权
每日讯息!12306回应免费坐高铁:积分存在有效期
环球即时看!甄子丹主演!《疾速追杀4》豆瓣8.2分:纯粹动作爽片 超越前作
男子求职竟被要求在杭州本地买房 网友:不是招员工是招客户
环球微动态丨试过网易的新AI后 我发现它很笨 但又很聪明
广汽传祺GS4追尾后定损巡航坏了?保险公司不想理赔
记录--vue刷新当前页面
全球关注:借助 mperf 进行矩阵乘法极致优化
MySQL学习笔记-存储引擎
当前看点!低代码起势,开发者可以早日脱离996了?
今日热议:南钢股份:钢材销量同比下降6.28%,2022年年归母净利润同比下滑48.59%,拟10派2.5元
快讯:《生化危机4:重制版》D加密惹争议 又导致性能问题了
全球观热点:女子地铁照被AI一键脱衣传播 网友:无下限的开发
每日焦点!网友准备冲Redmi Note 12 Turbo哈利·波特版:预算3900元
头条:男子乘错出租车 起步1秒被强制收费6元:走了不到10米
【世界新视野】内存掉入无底洞:没有最便宜 只有更便宜
环球观天下!32、K8S-配置管理之Configmap
世界看点:Python中21道个程序小练习
css设置超过固定长度以省略号显示
全球看点:乒乓球技巧训练这就是高手的水准_乒乓球技巧
全球简讯:瑞银:看好亚股增长潜力 偏好亚洲投资级债券
Twitter将上线离谱新规:非会员甚至无法参与投票
热头条丨九识自动驾驶物流车被曝闯红灯 网友:该怎么记分处罚
速读:“网红”威震天在北京环球影城摔了一跤 客服回应:后续演出正常
【环球新要闻】一个时代结束了!Wii U和3DS在线商店已正式关闭
实时:透明外壳设计!Nothing Ear(2)无线耳机上市 999元
热资讯![HTML]表单标签(form表单域、input输入表单、label标签、select下拉表单、textarea文本域)
C#List的3种排序方法