java - 无效的初始堆大小

标签 java docker apache-spark

这是我在EKS群集上部署Spark作业时收到的错误消息的日志。
使用嵌入到Docker镜像Alpine 3.9中的Spark 2.4.2。

你有什么想法吗?

谢谢

++ id -u
+ myuid=0
++ id -g
+ mygid=0
++ getent passwd 0
+ uidentry=root:x:0:0:root:/root:/bin/ash
+ '[' -z root:x:0:0:root:/root:/bin/ash ']'
+ SPARK_K8S_CMD=driver
+ '[' -z driver ']'
+ shift 1
+ SPARK_CLASSPATH=':/opt/spark/jars/*'
+ env
+ grep SPARK_JAVA_OPT_
+ sort -t_ -k4 -n
+ sed 's/[^=]*=\(.*\)/\1/g'
+ readarray -t SPARK_JAVA_OPTS
+ '[' -n '' ']'
+ '[' -n '' ']'
+ case "$SPARK_K8S_CMD" in
+ CMD=(${JAVA_HOME}/bin/java "${SPARK_JAVA_OPTS[@]}" -cp "$SPARK_CLASSPATH" -Xms$SPARK_DRIVER_MEMORY -Xmx$SPARK_DRIVER_MEMORY -Dspark.driver.bindAddress=$SPARK_DRIVER_BIND_ADDRESS $SPARK_DRIVER_CLASS $SPARK_DRIVER_ARGS)
+ exec /sbin/tini -s -- /usr/lib/jvm/java-1.8-openjdk/bin/java -cp ':/opt/spark/jars/*' -Xms -Xmx -Dspark.driver.bindAddress=xxx.xxx.xxx.xxx
Invalid initial heap size: -Xms
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

最佳答案

您既没有为最小/初始堆(-Xms)设置任何值,也没有为最大堆(-Xmx)设置任何值。

这里:

(...) ':/opt/spark/jars/*' -Xms -Xmx -Dspark.driver.bindAddress=xxx.xxx.xxx.xxx (...)

该错误告诉您Xms参数的值不正确:Invalid initial heap size: -Xms(因为没有值)。

用有效值填充这些参数,然后重试。您可以将其设置为MB((-Xms512M, -Xmx1024M)或GB(-Xms1G, -Xmx2G)。只是一些示例,请检查主机和JVM以指定正确的值。

关于java - 无效的初始堆大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58005794/

相关文章:

docker - 如何在容器中执行动态代码?

python - 在 gitlab-ci 中运行 Sonar 扫描仪

hadoop - Spark应用程序验证的测试框架

docker - 未标记的 Docker 镜像从哪里来?

java - evictAll 和刷新之间的区别

java - Java EE 7 中的 request.login() ?

java - 发送了 POST 请求,但服务器在 Android volley 中说 GET 请求,我在这里做错了什么?

python - 如何序列化 pyspark 管道对象?

scala - 使用scala在Spark中转置没有聚合的DataFrame

java - 使用 Java 类路径执行 Java 9+ 服务