EMR上的Flink无法从“flink run”命令访问S3存储桶

时间:2017-12-15 10:41:28

标签: amazon-s3 apache-flink emr

我正在为我们计划部署的基于Flink的系统使用AWS EMR进行原型设计。我的群集具有以下版本:

Release label: emr-5.10.0
Hadoop distribution: Amazon 2.7.3
Applications: Flink 1.3.2

在亚马逊提供的文档中:Amazon flink documentation

和Flink的文档:Apache flink documentation

都直接使用S3资源作为具有s3://<bucket>/<file>模式的集成文件系统。我已经验证设置了所有正确的权限,我可以使用AWS CLI将S3资源复制到主节点,没有问题,但尝试使用来自S3的Jar启动Flink作业不起作用。

我正在执行以下步骤:

JAR location : command-runner.jar
Main class : None
Arguments : flink run -m yarn-cluster -yid application_1513333002475_0001 s3://mybucket/myapp.jar
Action on failure: Continue

该步骤始终以

失败
  

JAR文件不存在:s3://mybucket/myapp.jar

我已经与AWS支持人员交谈了,他们建议上一步将S3文件复制到本地主节点,然后使用本地路径引用它。虽然这显然有效,但我宁愿让原生S3集成工作。

我也尝试使用s3a文件系统并获得相同的结果。

1 个答案:

答案 0 :(得分:0)

您需要从s3下载jar,以便在类路径中可用。

aws s3 cp s3://mybucket/myapp.jar myapp.jar

然后运行run -m yarn-cluster myapp.jar