首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
数据库
›
Oracle
›
HDFS块信息非常,spark无法读取数据
返回列表
发新帖
HDFS块信息非常,spark无法读取数据
[复制链接]
发表于 2026-2-16 02:26:49
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
配景:
flume数据落盘到hdfs上时,正在写入的文件一样平常是以.log.tmp末了的文件,当flume将文件关闭以后将变为:.log 末了的文件。由于我们利用阿里云的
服务器
,经常会有个别节点挂掉(进程在,无法通讯,必要在阿里云上逼迫重启呆板才行),导致一些文件写入停止,非正常关闭,造成快信息非常。导致spark报错,流程非常。
解放方法:
-- 1.检查hdfs目录下打开的文件
hdfs fsck /user/hive/external/ods/ods_xxxxx/dt=2024-07-07 -openforwrite
-- 2.过滤出非正常关闭的文件 (.log.tmp:正在打开写入数据的文件 .log 为关闭的文件,这里出现的.log文件即为异常文件)
将文件复制出来 vcscode
通过将OPENFORWRITE替换为 \n 换行
将 .log.tmp的正常文件替换为空,过滤出异常文件 【正则: .*\.tmp.* 】
-- 3.修复 (将异常的文件进行修复)
hdfs debug recoverLease -path /user/hive/external/ods/ods_xxxxx/dt=2024-07-07/flume_app.1720290198943.log -retries 3
hdfs debug recoverLease -path /user/hive/external/ods/ods_xxxxx/dt=2024-07-07/flume_app.1720290187773.log -retries 3
hdfs debug recoverLease -path /user/hive/external/ods/ods_xxxxx/dt=2024-07-07/flume_app.1720290379675.log -retries 3
复制
代码
下令表明:
hdfs fsck /user/hive/external/ods/ods_xxxxx/dt=2024-07-07 -openforwrite
使用 hdfs fsck 命令加上 -openforwrite 选项时,它会检查指定的目录是否可以
安全
地打开以供写入,并报告任何可能影响写入操作的问题。这包括检查是否有文件正被打开进行写入。
-openforwrite 选项主要关注于以下几个方面:
检查目录下是否有文件正处于打开状态,即这些文件是否被某个客户端持有写入租约(lease)。
检查是否有任何文件处于不完整的状态(即尚未完成写入)。
如果目录中有文件正在被打开写入,fsck 命令的输出通常会显示这些文件的信息。这些信息可以帮助您了解哪些文件可能会阻止您对目录进行进一步的写入操作。
复制
代码
hdfs debug recoverLease -path /user/hive/external/ods/ods_xxxxx/dt=2024-07-07/flume_app.1720290198943.log -retries 3
命令用于尝试恢复在 HDFS 中被中断的文件写入操作。当一个文件的写入因为某种原因(如客户端意外断开连接)而中断时,这个文件会被标记为“未完成”状态,并且其租约(lease)将保持有效直到过期或者手动释放。
hdfs debug recoverLease: 这个命令用于尝试恢复一个文件的租约,使其可以从“未完成”的状态中恢复过来。
-path: 指定要恢复租约的文件路径。
/user/hive/external/ods/ods_xxxxx/dt=2024-07-07/flume_app.1720290198943.log: 这是具体的文件路径。
-retries 3: 指定在尝试恢复租约时的最大重试次数。
执行这条命令后,HDFS 会尝试恢复指定文件的租约。如果文件的租约可以成功恢复,那么文件就可以继续写入或完成写入过程。如果命令执行失败,它将根据指定的重试次数进行重试。
复制
代码
回复
使用道具
举报
返回列表
浏览过的版块
DevOps与敏捷开发
数据仓库与分析
SAAS
Java
网络安全
物联网
前端开发
SQL-Server
分布式数据库
商道如狼道
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表