相关文章推荐
近视的眼镜  ·  docker ipfs ...·  2 年前    · 
火星上的小熊猫  ·  EXECUTE ...·  3 年前    · 
command-runner.jar

位于集群的 Amazon EMR AMI 上。您可以使用 command-runner.jar 在集群上运行命令。你没有使用其完整路径指定 command-runner.jar

script-runner.jar

Amazon S3 托管在 s3:// <region> .elasticmapreduce/libs/script-runner/script-runner.jar ,其中 <region> 是 Amazon EMR 集群所在的区域。您可以使用 script-runner.jar 以在集群上运行本地或 Amazon S3 上保存的脚本。当您提交步骤时,您必须指定 script-runner.jar 的完整 URI。

提交自定义 JAR 步骤以运行脚本或命令

以下 AWS CLI 示例说明了 Amazon EMR script-runner.jar command-runner.jar 和上的一些常见用例。

例 :使用 command-runner.jar 在集群上运行命令

当您使用 command-runner.jar 时,您可以在步骤的参数列表中指定命令、选项和值。

以下 AWS CLI 示例向正在调用的 command-runner.jar 正在运行的集群提交一个步骤。 Args 列表中的指定命令将 my-script.sh 从 Amazon S3 调用的脚本下载到 hadoop 用户主目录中。然后,该命令修改脚本的权限并运行 my-script.sh

使用时 AWS CLI, Args 列表中的项目应以逗号分隔,列表元素之间不应有空格。例如,使用 Args=[example-command,example-option,"example option value"] 而不是 Args=[example-command, example-option, "example option value"]

aws emr add-steps \ --cluster-id j-2AXXXXXXGAPLF \ --steps Type=CUSTOM_JAR,Name="Download a script from S3, change its permissions, and run it",ActionOnFailure=CONTINUE,Jar=command-runner.jar,Args=[bash,-c,"aws s3 cp s3://amzn-s3-demo-bucket/my-script.sh /home/hadoop; chmod u+x /home/hadoop/my-script.sh; cd /home/hadoop; ./my-script.sh"]
例 :使用 script-runner.jar 在集群上运行脚本

当您使用 script-runner.jar 时,在步骤的参数列表中指定想要运行的脚本。

以下 AWS CLI 示例向正在调用的 script-runner.jar 正在运行的集群提交一个步骤。在本例中,调用的脚本存储在 my-script.sh Amazon S3 上。您还可以指定存储在集群主节点 (master node) 的本地脚本。

aws emr add-steps \ --cluster-id j-2AXXXXXXGAPLF \ --steps Type=CUSTOM_JAR,Name="Run a script from S3 with script-runner.jar",ActionOnFailure=CONTINUE,Jar=s3://us-west-2.elasticmapreduce/libs/script-runner/script-runner.jar,Args=[s3://amzn-s3-demo-bucket/my-script.sh]

其他使用 command-runner.jar 的方法

您还可以借助类似于 spark-submit hadoop-streaming 的工具,使用 command-runner.jar 将工作提交至集群。当您使用 command-runner.jar 启动应用程序时,您指定 CUSTOM_JAR 作为步骤类型而不是使用类似于 SPARK STREAMING 或者 PIG 的值。工具可用性取决于您在集群上安装的应用程序。

以下示例命令借助 spark-submit 使用 command-runner.jar 提交步骤。该 Args 列表指定 spark-submit 为命令,然后是 my-app.py 带有参数和值的 Spark 应用程序的 Amazon S3 URI。

aws emr add-steps \ --cluster-id j-2AXXXXXXGAPLF \ --steps Type=CUSTOM_JAR,Name="Run spark-submit using command-runner.jar",ActionOnFailure=CONTINUE,Jar=command-runner.jar,Args=[spark-submit,S3://amzn-s3-demo-bucket/my-app.py,ArgName1,ArgValue1,ArgName2,ArgValue2]

下表列出了通过 command-runner.jar 您可以使用的其他工具。

hadoop-streaming 提交 Hadoop 流式处理程序。在控制台和某些游戏中 SDKs,这是一个直播步骤。 hive-script 运行 Hive 脚本。在控制台中 SDKs,这是 Hive 的一步。 pig-script 运行 Pig 脚本。在控制台中 SDKs,这是 Pig 的步骤。 spark-submit

运行 Spark 应用程序。在控制台中,这是 Spark 步骤。

hadoop-lzo 在目录上运行 Hadoop LZO 索引器