【问题标题】:run a yarn application on AMAZON EMR在 AMAZON EMR 上运行纱线应用程序
【发布时间】:2026-02-01 10:25:01
【问题描述】:

我想在 AMAZON EMR 上运行 yahoo 的 Storm-on-yarn 项目。在 EMR 上,supervisor 本地目录无法创建。我想可能是连接问题或没有权限。 你能给我一些建议吗?谢谢你的帮助。

2017-03-01 11:38:02 supervisor [ERROR] 初始化错误 服务器 mk-supervisor java.io.IOException: 无法创建目录 /mnt/yarn,/mnt1/yarn/usercache/yarn/appcache/application_1488367739843_0002/container_1488367739843_0002_01_000006/storm/storm-1.0.1/storm-local/supervisor at org.apache.storm.shade.org.apache.commons.io.FileUtils.forceMkdir(FileUtils.java:2384) ~[storm-core-1.0.1.jar:1.0.1] 在 org.apache.storm.config$supervisor_local_dir.invoke(config.clj:172) ~[storm-core-1.0.1.jar:1.0.1] 在 org.apache.storm.config$supervisor_isupervisor_dir.invoke(config.clj:177) ~[storm-core-1.0.1.jar:1.0.1] 在 org.apache.storm.daemon.supervisor$fn__9230$exec_fn__2461__auto____9231.invoke(supervisor.clj:781) ~[storm-core-1.0.1.jar:1.0.1] 在 clojure.lang.AFn.applyToHelper(AFn.java:160) ~[clojure-1.7.0.jar:?] 在 clojure.lang.AFn.applyTo(AFn.java:144) ~[clojure-1.7.0.jar:?] 在 clojure.core$apply.invoke(core.clj:630) ~[clojure-1.7.0.jar:?] at org.apache.storm.daemon.supervisor$fn__9230$mk_supervisor__9275.doInvoke(supervisor.clj:779) [storm-core-1.0.1.jar:1.0.1] 在 clojure.lang.RestFn.invoke(RestFn.java:436) [clojure-1.7.0.jar:?] 在 org.apache.storm.daemon.supervisor$_launch.invoke(supervisor.clj:1216) [storm-core-1.0.1.jar:1.0.1] 在 org.apache.storm.daemon.supervisor$_main.invoke(supervisor.clj:1249) [storm-core-1.0.1.jar:1.0.1] 在 clojure.lang.AFn.applyToHelper(AFn.java:152) [clojure-1.7.0.jar:?] 在 clojure.lang.AFn.applyTo(AFn.java:144) [clojure-1.7.0.jar:?] 在 org.apache.storm.daemon.supervisor.main(未知来源) [storm-core-1.0.1.jar:1.0.1]

【问题讨论】:

    标签: hadoop amazon-ec2 amazon-emr


    【解决方案1】:
    1. 无密码 SSH 已经是默认设置,您必须专门使用密码启用 SSH 登录(这样做不是一个好主意,因为它不如使用密钥对安全,我假设这是您的意思是“ssh login without password”)。

    当您创建 EMR 集群时,您可以选择指定要使用的 SSH 密钥的名称(在已经上传公钥或使用 AWS 控制台/CLI 为您创建密钥对之后),然后您可以使用私钥(通常是 .pem 文件)通过 SSH 连接到 EMR 集群的主实例。

    有关详细信息,请参阅以下页面: http://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html

    1. 由于您没有提供太多信息,因此很难判断问题出在哪里,但听起来您可能以“ec2-user”的身份通过 SSH 连接到集群。使用 EMR 时,您应该以“hadoop”用户身份通过​​ SSH 连接到集群。如果这不能解决您的问题,请更新问题,详细说明您在做什么。

    【讨论】:

    • 我已经更新了我的问题。也许你可以给我一些建议。谢谢你的帮助。
    • 您使用什么用户运行此应用程序?如果您不知道,您使用什么命令 SSH 到集群?另外,您使用什么命令来运行应用程序。最后,Storm on YARN 不是 EMR 官方支持的东西,那么您按照什么说明安装它?
    • 我已经使用默认用户 hadoop 运行了这个应用程序。我使用 SSH 连接主节点。在 EMR 上,我像在本地 hadoop 集群上一样部署这个应用程序。我按照雅虎提供的文档部署应用程序。我将storm项目放入HDFS,并在master节点上安装storm-yarn和storm。 Storm的灵气可以在yarn container中启动,但是supervisor不能启动。纱线容器初始化出错。