背景
趁着失业的间隙想要重温一下Flink相关的学习,当前一切就绪之后,想要用我的 mac运行一个 flink版 helloworld 来验证整体环境是否 OK的时候出现了如下问题,这个问题我未曾遇到过,如下:
Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
问题现象
启动程序时候出现如下情况:
该错误提示说明 JVM 在崩溃时无法生成 core dump 文件,可能是因为 core dump 功能被禁用了。要启用 core dumping,可以在重新启动 Java 前尝试使用 ulimit 命令设置 core dump 大小为 unlimited。
因此,依据提示设置ulimit -c unlimited 后发现是没有用的, 其实设置已经生效,我甚至重启清理了电脑2 次,无果。
解决
1、按照网上搜索到的解决办法尝试设置相关系统参数(无效)
2、设置 flink配置 (无效)
flink.throwable.enable.suppression=true
flink.throwable.suppression.pattern=“.Unsafe.”
3、其他stackoverflow 浏览的 N多解决办法都不试用。 (无效)
4、尝试降低 Java 的版本号呢? 我带着怀疑的去开搞了…
之前安装 Java 环境的时候 我使用了 berw install java@8
就可以使用了,版本:openjdk version “1.8.0_402”(默认安装的 Java 8 最新版),用该版本在使用springboot工程上没有任何问题,但是偏在执行 flink一个简单的 flatMap函数如下,就会报上述错误。
FlatMapOperator<String, Tuple2<String, Long>> wordAndOne = lineDs
.flatMap((String line, Collector<Tuple2<String, Long>> out) -> {
String[] words = line.split(" ");
for (String word : words) {
out.collect(new Tuple2<>(word, 1L));
}
}).returns(Types.TUPLE(Types.STRING, Types.LONG));
因此,我尝试降低小版本号,比如使用 401或者再低些 211
如下:允许时候切换不同的版本测试发现 402 小版本确实有问题,401 和 211 版本验证通过
总结
上述 Java8 402 小版本的坑没有真正解决,但是可以通过降低版本的方式来解决问题,所以遇事不能死脑筋,能解决问题就好,网络上太多纷杂的文章解决方案,有收费的,有一笔带过的,希望的我遇到的问题能使你不在踩坑,阿门~