我有一个持久的运行EMR集群。我不想拆掉。
如何在aws上已经运行的EMR集群上安装apache?
答案 0 :(得分:1)
在AWS Github https://github.com/awslabs/emr-bootstrap-actions/blob/master/drill/setup_drill上提供了一个ruby脚本,看起来应该工作,假设你先安装了ruby。我没有看到任何原因导致它无法在现有群集上运行。安装完所有选定的EMR组件,创建hadoop用户并应用配置设置后,EMR会运行引导脚本。当然,您可以在新群集上对此进行测试,这样您就不会破坏持久群集。
脚本需要在每个节点上运行,因此您可以scp或将其复制到s3,然后使用aws cli复制到每个节点,或者使用@fmcmac建议的内容。我在line 38看到它知道当前节点是否为主节点,因此它足够智能以便正确安装。
自更新以来看起来已有几年了,因此您需要检查版本和版本。它正在安装的依赖版本,可能会进行一些调整。它似乎试图从http://getdrill.org/drill/download获取apache-drill-1.0.0.tar.gz,它目前应该是来自较新网站https://drill.apache.org/download/的v1.12.0,所以至少该部分需要更改。它还安装了Zookeeper来运行Drill,所以检查你是否已经在运行Zookeeper,因为如果你已经有zookeeper,那么Drill将需要在那里安装新的应用程序,如果你尝试安装在顶层,你可能会遇到问题,版本兼容性是某些东西仔细检查。
另外,EMR群集被拆除,引导脚本和&群集配置和"步骤"这么容易。启动,运行工作,拆除。它的价格便宜了。 "群集是牛,而不是宠物"。即使你需要分析师在那里工作,当然它没有被使用,这会花费你的钱。
答案 1 :(得分:0)
假设您已安装SSM,您可以使用ssm.send_command(将命令发送到所有节点)来调用S3脚本,该脚本在正在运行的EMR集群上安装并开始钻取。
这里有一个例子:https://gist.github.com/fmcmac/a35738376d111fdca45057bd0fb4c79e