前言
Flink使用Web UI可以方便本地调试,基本使用如下:
pom添加
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-runtime-web_${scala.version}</artifactId>
<version>${flink.version}</version>
</dependency>
代码中使用createLocalEnvironmentWithWebUI创建
Configuration conf = new Configuration();
StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);
之前挺正常的,今天突然遇到一个奇怪的问题,虽然找到了解决方案,暂时解决了,但是还是没有搞懂为什么会提示这个错误。所以记录一下。
答案写在最前面,后面的就是记录一下自己的排错:
conf.setString(RestOptions.BIND_PORT, "8081-8089");
配置一个可绑定的端口范围就能正常使用了。
Could not start rest endpoint on any port in port range 8081
这个错误就是说端口8081被占用了,所以目前的进程绑定不上了。
第一反应就是上一次的端口估计没有被释放,所以正常来说一下两步就解决了。
losf -i:8081
kill -9 xxx
但是!!!! 8081 没有占用啊。。。
找到好久,发现可以在配置里面添加一个端口绑定的范围就尝试了一下。。
结果成功了。。。,看日志,我去绑定的端口是8081!!!!
虽然根据上述方法解决了,但是谁来告诉我为什么???
总结
这个问题放这里,以后再看。可以谁能告诉我为什么???