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) 解决了问题。
我已经构建了一个 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) 解决了问题。