使用bootstrap替换EMR上的默认jar

时间:2015-01-29 05:36:52

标签: hadoop amazon-web-services emr bootstrapping

我在AMI 3.0.4的EMR集群上。一旦群集启动,我就会掌握并手动执行以下操作:

cd /home/hadoop/share/hadoop/common/lib/
rm guava-11.0.2.jar
wget http://central.maven.org/maven2/com/google/guava/guava/14.0.1/guava-14.0.1.jar
chmod 777 guava-14.0.1.jar

是否可以在引导操作中执行上述操作?谢谢!

1 个答案:

答案 0 :(得分:1)

是的,您可以添加引导脚本来执行此操作。创建一个shell脚本并将其上传到s3,然后在EMR的bootstrap操作中使用脚本路径。

例如,你可以在s3存储桶中保存guava-14.0.1.jar并下载

#!/bin/bash
hadoop fs -copyToLocal s3n://rootbucket/myjars/guava-14.0.1.jar /home/hadoop/share/hadoop/common/lib/
rm -rf /home/hadoop/share/hadoop/common/lib/guava-11.0.2.jar

我假设您正在执行此操作,因为您对地图缩减代码中的14.0.1 jar有一些依赖性。您可以添加guava-14.0.1.jar来构建胖jar并将jar作为自定义jar上传以运行您的作业