【问题标题】:Is there a way to setup bootstrap actions to run on EMR after core services are installed (Spark etc)?安装核心服务(Spark 等)后,有没有办法设置引导操作以在 EMR 上运行?
【发布时间】:2019-10-03 01:44:24
【问题描述】:

安装核心服务(Spark 等)后,有没有办法设置引导操作以在 EMR 上运行?我正在使用 emr-5.27.0。

【问题讨论】:

    标签: amazon-emr


    【解决方案1】:

    您可以提交一些脚本作为step,而不是引导程序。例如,我制作了一个 SSL 证书更新脚本,并通过一个步骤将其应用于 EMR。这是我用 Python 语言编写的 lambda 函数的一部分。但是你可以在控制台手动添加这一步,或者其他语言。

    Steps=[{
        'Name': 'PrestoCertificate',
        'ActionOnFailure': 'CONTINUE',
        'HadoopJarStep': {
            'Jar': 's3://ap-northeast-2.elasticmapreduce/libs/script-runner/script-runner.jar',
            'Args': ['s3://myS3/PrestoSteps_InstallCertificate.sh']
        }
    }]
    

    关键点是亚马逊预建的script-runner.jar,您可以通过更改区域前缀为每个区域使用它。它接收一个 .sh 文件并运行它。

    您应该知道的一件事是,脚本将在所有节点上运行,如果您只想在主实例上执行此操作,则必须使用 if-else 语句。

    #!/bin/bash
    BOOL=`cat /emr/instance-controller/lib/info/instance.json | jq .isMaster`
    
    if [ $BOOL == "true" ]
    then
        <your code>
    fi
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2016-09-08
    相关资源
    最近更新 更多