我已经构建了一个Apache Flink应用程序,并使用Gradle Shadow Plugin将其打包在一个胖JAR中。生成的文件大小为 ~114 MiB。当我尝试使用 Flink 的 Web UI 上传它时,它卡在"保存..."阶段。如果我使用 curl 手动上传它,结果是"413 请求实体太大":
$ curl -X POST -H "Expect:" -i -F "jarfile=@flink-all.jar" http://ec2-18-204-247-166.compute-1.amazonaws.com:8081/jars/upload
HTTP/1.1 413 Request Entity Too Large
content-length: 0
那么有什么选择呢?
UPD:我可以在/tmp/flink-web-UUID/flink-web-upload/UUID/flink-all.jar
中看到 JAR,但它无法被 Flink 识别(在 UI 上不可见(。
好的,这很容易修复。
首先,我已经扫描了他们的存储库以查找"太大"字符串并找到了这个类。 看起来SERVER_MAX_CONTENT_LENGTH
负责最大对象大小。它是从配置选项rest.server.max-content-length
设置的。默认值为 100 MiB。
TLDR:
将flink-conf.yaml
中的rest.server.max-content-length
设置为209715200
(200 MiB( 解决了该问题。