我使用readTextFile(/path/ to /dir)来读取批文件,对行进行一些操作,并将它们保存到cassandra。
一切看起来都很好,直到我到达目录中的170多个文件(在成功运行后文件被删除)。现在我收到了"IOException:打开的文件太多了“,在运行代码后,我看到成千上万的文件描述符正在打开。几乎所有的文件描述符都是“套接字”。
对只有10个文件的较小规模的测试导致了4000多个文件描述符的打开,一旦脚本完成,所有的文件描述符都会关闭并恢复正常。
这是flink的正常行为吗?我应该提高上限吗?
注意:环境是Tomcat 7,带有java 8,flink 1.1.2使用DataSet API。Flink作业计划与石英。
所有这些170+文件总计约为5MB。
发布于 2016-10-23 09:28:35
问题解决了。
在缩小代码之后,我发现在高度并行的"map()“步骤中使用"Unirest.setTimeouts”会导致过多的线程分配,从而消耗掉我的所有文件描述符。
https://stackoverflow.com/questions/40165795
复制相似问题