我构建了一个 Apache Flink 应用程序,并将其打包在一个带有 Gradle Shadow Plugin 的胖 JAR 中。 。生成的文件大小约为 114 MiB。当我尝试使用 Flink 的 Web UI 上传它时,它陷入“正在保存...”阶段。如果我使用curl手动上传它,结果是“413 Request Entity Too Large”:
$ curl -X POST -H "Expect:" -i -F "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="412b203327282d247c01272d282f2a6c202d2d6f2b2033" rel="noreferrer noopener nofollow">[email protected]</a>" 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 无法识别它(不可见)在用户界面上)。
最佳答案
好的,很容易修复。
首先,我扫描了他们的存储库中的“Too Large”字符串,发现 this class 。看起来 SERVER_MAX_CONTENT_LENGTH
负责最大对象大小。设置here来自配置选项rest.server.max-content-length
。默认值为 100 MiB。
TLDR:
将 flink-conf.yaml
中的 rest.server.max-content-length
设置为 209715200
(200 MiB) 解决了该问题。
关于apache-flink - Apache Flink 胖 JAR 的最大大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51983995/