文档首页/ MapReduce服务 MRS/ 组件操作指南(普通版)(巴黎区域)/ 使用CarbonData(MRS 3.x及之后版本)/ CarbonData FAQ/ 当初始Executor为0时,为什么INSERT INTO/LOAD DATA任务分配不正确,打开的task少于可用的Executor?
更新时间:2022-02-22 GMT+08:00

当初始Executor为0时,为什么INSERT INTO/LOAD DATA任务分配不正确,打开的task少于可用的Executor?

问题

当初始Executor为0时,为什么INSERT INTO/LOAD DATA任务分配不正确,打开的task少于可用的Executor?

回答

在这种场景下,CarbonData会给每个节点分配一个INSERT INTO或LOAD DATA任务。如果Executor不是不同的节点分配的,CarbonData将会启动较少的task。

解决措施

您可以适当增大Executor内存和Executor核数,以便YARN可以在每个节点上启动一个Executor。具体的配置方法如下:

  1. 配置Executor核数。
    • “spark-defaults.conf”中的“spark.executor.cores”配置项或者“spark-env.sh”中的“SPARK_EXECUTOR_CORES”配置项设置为合适大小。
    • 在使用spark-submit命令时,添加“--executor-cores NUM”参数设置核数。
  2. 配置Executor内存。
    • “spark-defaults.conf”中的“spark.executor.memory”配置项或者“spark-env.sh”中的“SPARK_EXECUTOR_MEMORY”配置项设置为合适大小。
    • 在使用spark-submit命令时,添加“--executor-memory MEM”参数设置内存。