我已将 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/