wordpress多语言站点,移动开发的几种方式,网络运营商包括,node有类似Wordpress背景#xff1a;flume数据落盘到hdfs上时#xff0c;正在写入的文件一般是以.log.tmp结尾的文件#xff0c;当flume将文件关闭以后将变为#xff1a;.log 结尾的文件。由于我们使用阿里云的服务器#xff0c;经常会有个别节点挂掉(进程在#xff0c;无法通信#xff0c;…背景flume数据落盘到hdfs上时正在写入的文件一般是以.log.tmp结尾的文件当flume将文件关闭以后将变为.log 结尾的文件。由于我们使用阿里云的服务器经常会有个别节点挂掉(进程在无法通信需要在阿里云上强制重启机器才行)导致一些文件写入中断非正常关闭造成快信息异常。导致spark报错流程异常。
解放方法
-- 1.检查hdfs目录下打开的文件hdfs fsck /user/hive/external/ods/ods_xxxxx/dt2024-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/dt2024-07-07/flume_app.1720290198943.log -retries 3 hdfs debug recoverLease -path /user/hive/external/ods/ods_xxxxx/dt2024-07-07/flume_app.1720290187773.log -retries 3 hdfs debug recoverLease -path /user/hive/external/ods/ods_xxxxx/dt2024-07-07/flume_app.1720290379675.log -retries 3
命令解释
hdfs fsck /user/hive/external/ods/ods_xxxxx/dt2024-07-07 -openforwrite使用 hdfs fsck 命令加上 -openforwrite 选项时它会检查指定的目录是否可以安全地打开以供写入并报告任何可能影响写入操作的问题。这包括检查是否有文件正被打开进行写入。-openforwrite 选项主要关注于以下几个方面检查目录下是否有文件正处于打开状态即这些文件是否被某个客户端持有写入租约lease。
检查是否有任何文件处于不完整的状态即尚未完成写入。
如果目录中有文件正在被打开写入fsck 命令的输出通常会显示这些文件的信息。这些信息可以帮助您了解哪些文件可能会阻止您对目录进行进一步的写入操作。 hdfs debug recoverLease -path /user/hive/external/ods/ods_xxxxx/dt2024-07-07/flume_app.1720290198943.log -retries 3 命令用于尝试恢复在 HDFS 中被中断的文件写入操作。当一个文件的写入因为某种原因如客户端意外断开连接而中断时这个文件会被标记为“未完成”状态并且其租约lease将保持有效直到过期或者手动释放。hdfs debug recoverLease: 这个命令用于尝试恢复一个文件的租约使其可以从“未完成”的状态中恢复过来。
-path: 指定要恢复租约的文件路径。
/user/hive/external/ods/ods_xxxxx/dt2024-07-07/flume_app.1720290198943.log: 这是具体的文件路径。
-retries 3: 指定在尝试恢复租约时的最大重试次数。
执行这条命令后HDFS 会尝试恢复指定文件的租约。如果文件的租约可以成功恢复那么文件就可以继续写入或完成写入过程。如果命令执行失败它将根据指定的重试次数进行重试。