【问题标题】:EMR cluster bootstrap + setting environment variables cluster-wiseEMR 集群引导 + 集群设置环境变量
【发布时间】:2019-05-02 11:48:28
【问题描述】:

我正在尝试创建一个 EMR 集群(通过命令行)并为其提供一些引导操作和配置文件。

目的是设置一些SPARK/Yarn 变量,以及一些其他应该在集群中使用的环境变量(因此这些环境变量应该在主服务器和从服务器上都可用)。

我给它一个如下所示的配置文件:

[
 {
    "Classification": "yarn-env",
    "Properties": {},
    "Configurations": [
      {
        "Classification": "export",
        "Properties": {
          "appMasterEnv.SOME_VAR": "123",
          "nodemanager.vmem-check-enabled": "false",
          "executor.memoryOverhead": "5g"
        },
        "Configurations": [
        ]
      }
    ]
  },
  {
    "Classification": "spark-env",
    "Properties": {},
    "Configurations": [
      {
        "Classification": "export",
        "Properties": {
          "appMasterEnv.SOME_VAR": "123",
          "PYSPARK_DRIVER_PYTHON": "python36",
          "PYSPARK_PYTHON": "python36",
          "driver.memoryOverhead": "14g",
          "driver.memory": "14g",
          "executor.memory": "14g"
        },
        "Configurations": [
        ]
      }
    ]
  }
]

但是,当我尝试向集群添加一些步骤时,该步骤失败,声称它不知道环境变量 SOME_VAR

Traceback (most recent call last):
  File "..", line 9, in <module>.
  ..
    raise EnvironmentError
OSError

(行号是我尝试使用环境变量SOME_VAR的地方)

对于SOME_VAR 和其他Spark/Yarn vars,我的做法是否正确?

谢谢

【问题讨论】:

标签: pyspark hadoop-yarn amazon-emr


【解决方案1】:

按照用户 lenin 的建议,删除 appMasterEnv.SOME_VAR 前面的 appMasterEnv。

使用分类 yarn-env 将环境变量传递给工作节点。

使用分类 spark-env 将环境变量传递给驱动程序,带有部署模式客户端。使用部署模式集群时,使用yarn-env。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    相关资源
    最近更新 更多