java - Spark 执行器: Invalid initial heap size: -Xms0M

标签 java apache-spark jvm apache-spark-sql

我已将 Spark 配置为在 hive 表上进行查询。

使用以下命令运行 Thrift JDBC/ODBC 服务器:

cd $SPARK_HOME
./sbin/start-thriftserver.sh --master spark://myhost:7077 --hiveconf hive.server2.thrift.bind.host=myhost --hiveconf hive.server2.thrift.port=9999

然后检查 Spark 工作线程 UI,执行程序启动失败并出现以下错误,JVM 初始化由于 -Xms 错误而失败:

Invalid initial heap size: -Xms0M
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

以下是conf/spark-env.sh中更改的配置

export SPARK_JAVA_OPTS="-Dspark.executor.memory=512M"
export SPARK_EXECUTOR_MEMORY=1G
export SPARK_DRIVER_MEMORY=512M
export SPARK_WORKER_MEMORY=2G
export SPARK_WORKER_INSTANCES=1

我真的不知道这个值 -Xms0M 从哪里来或者它是如何导出的? 请帮助我理解问题并更改此值。

最佳答案

它现在正在工作......

Thrift 服务器没有从 spark-env.sh​ 中选取执行程序内存,然后我显式添加到 thrift 服务器启动脚本中。

./sbin/start-thriftserver.sh

exec "$FWDIR"/sbin/spark-daemon.sh spark-submit $CLASS 1 --executor-memory 512M "$@"

有了这个,执行器开始获取有效内存,并且 JDBC 查询正在获取结果。

conf/spark-env.sh(执行器内存配置未由 thrift-server 选择)

export SPARK_JAVA_OPTS="-Dspark.executor.memory=512M"
export SPARK_EXECUTOR_MEMORY=512M

关于java - Spark 执行器: Invalid initial heap size: -Xms0M,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35076432/

相关文章:

java - 如何将数值和分类特征传递给 Apache Spark 中的 RandomForestRegressor : MLlib in Java?

eclipse - 增加 Eclipse 的 JVM 最大堆大小

java - NULL 数组 - 如何在 while 循环中链接它

java - jackson 开始反序列化两个级别

java - 单元测试在构建服务中失败但在本地失败

java - 知道我的 RecursiveTask 将在哪个 ForkJoinPool 上执行

java - 热点何时可以在堆栈上分配对象?

java - 使用 RMI 检测服务器崩溃

java - 使用Spark编写数据集时,如何将驼峰式列名修改为小写并带下划线?

python - 从 pySpark 中的 UDF 动态推断返回对象的架构