我已经构建了一个Apache Flink应用程序,并将其打包到带有Gradle Shadow Plugin的胖JAR中。结果文件大小为〜114 MiB。当我尝试使用Flink的Web UI上传它时,它停留在“保存中…”阶段。如果我使用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上不可见)。
答案 0 :(得分:2)
好,很容易修复。
首先,我已经扫描了他们的存储库中的“太大”字符串,并发现了this class。看起来SERVER_MAX_CONTENT_LENGTH
负责最大对象大小。可通过配置选项rest.server.max-content-length
设置here。默认值为100 MiB。
TLDR :
在rest.server.max-content-length
中将flink-conf.yaml
设置为209715200
(200 MiB)解决了该问题。