flink—打开的文件过多

flink错误之打开文件数量太大

最近在测试时,发现代码在测试机上运行很短一段时间后就报错,查看日志,发现报打开文件数量太大,经检查发现是redis连接池没有全部关闭,调整代码后问题解决。记录一下解决办法。

解决办法

1、提交任务之前先查看linux 打开文件总数lsof |wc -l
2、提交任务,再次并多次查看linux 打开文件总数,看是否只增不减。
3、看到只增不减,问题就在这里,报警的“打开文件数量太大”并不单单指的是文件数量,还包括了创建的连接,检查代码是否有流没有关闭,链接没有关闭,或者存在漏网之鱼。
4、优化代码即可。
其他:
1、也可以直接查看进程的打开文件数量lsof -p pid| wc -l(pid为进程号)
附上错误
2021-05-25 13:18:59 java.io.IOException: Failed to fetch BLOB 1274a1ec66929d979383f3c2a74fcd79/p-8feaec4b542ae217e969b60765f6faa08857ca31-76ba043072f6790e3ff581f840f5f3c3 from localhost/127.0.0.1:45916 and store it under /srv/test/blobStore-8f3f38c6-ce6f-4f7b-a4c5-28997fe958bd/incoming/temp-00000010 at org.apache.flink.runtime.blob.BlobClient.downloadFromBlobServer(BlobClient.java:169) at org.apache.flink.runtime.blob.AbstractBlobCache.getFileInternal(AbstractBlobCache.java:181) at org.apache.flink.runtime.blob.PermanentBlobCache.getFile(PermanentBlobCache.java:202) at org.apache.flink.runtime.execution.librarycache.BlobLibraryCacheManager.registerTask(BlobLibraryCacheManager.java:120) at org.apache.flink.runtime.taskmanager.Task.createUserCodeClassloader(Task.java:915) at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:595) at org.apache.flink.runtime.taskmanager.Task.run(Task.java:530) at java.lang.Thread.run(Thread.java:748) Caused by: java.io.FileNotFoundException: /srv/test/blobStore-8f3f38c6-ce6f-4f7b-a4c5-28997fe958bd/incoming/temp-00000010 (打开的文件过多) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.<init>(FileOutputStream.java:213) at java.io.FileOutputStream.<init>(FileOutputStream.java:162) at org.apache.flink.runtime.blob.BlobClient.downloadFromBlobServer(BlobClient.java:145) ... 7 more

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值