Apache Flink 的胖 JAR 的最大大小

Max size of a fat JAR for Apache Flink

我已经构建了一个 Apache Flink 应用程序并将其打包在一个带有 Gradle Shadow Plugin 的胖 JAR 中。生成的文件大小约为 114 MiB。当我尝试使用 Flink 的网络 UI 上传它时,它卡在了 "Saving…" 阶段。如果我使用 curl 手动上传,结果是“413 Request Entity Too Large”:

$ 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 中不可见)。

好的,很容易修复。

首先,我扫描了他们的存储库中的 "Too Large" 字符串,并从配置选项 rest.server.max-content-length 中找到了 this class. Looks like SERVER_MAX_CONTENT_LENGTH is responsible for max object size. It is set here。默认值为 100 MiB。

TLDR:

flink-conf.yaml 中的 rest.server.max-content-length 设置为 209715200 (200 MiB) 解决了问题。