【问题标题】:Cannot use apache flink in amazon emr无法在亚马逊 emr 中使用 apache flink
【发布时间】:2015-08-13 15:02:51
【问题描述】:

我无法在 Amazon EMR 中启动 Apache Flink 的纱线会话。我得到的错误信息是

$ tar xvfj flink-0.9.0-bin-hadoop26.tgz
$ cd flink-0.9.0
$ ./bin/yarn-session.sh -n 4 -jm 1024 -tm 4096
...
Diagnostics: File file:/home/hadoop/.flink/application_1439466798234_0008/flink-conf.yaml does not exist
java.io.FileNotFoundException: File file:/home/hadoop/.flink/application_1439466798234_0008/flink-conf.yaml does not exist
...

我使用的是 Flink 0.9 版和 Amazons Hadoop 4.0.0 版。有什么想法或提示吗?

完整的日志可以在这里找到:https://gist.github.com/headmyshoulder/48279f06c1850c62c28c

【问题讨论】:

  • 报错之前发生了什么?你能分享更多的输出吗?
  • 好的,我添加了完整的日志。

标签: hadoop-yarn emr amazon-emr apache-flink


【解决方案1】:

来自日志:

文件系统方案是“文件”。这表明指定的Hadoop配置路径错误,系统使用的是默认的Hadoop配置值。Flink YARN客户端需要将其文件存储在分布式文件系统中

Flink 读取 Hadoop 配置文件失败。它们要么从环境变量中获取,例如HADOOP_HOME,或者您可以在执行 YARN 命令之前在 flink-conf.yaml 中设置配置目录。

Flink 需要读取 Hadoop 配置才能知道如何将 Flink jar 上传到集群文件系统,以便新创建的 YARN 集群可以访问它。如果 Flink 无法解析 Hadoop 配置,它会使用本地文件系统上传 jar。这意味着 jar 将被放置在您启动集群的机器上。因此,它将无法从 Flink YARN 集群访问。

请参阅Flink configuration page 了解更多信息。

编辑:在 Amazong EMR 上,export HADOOP_CONF_DIR=/etc/hadoop/conf 让 Flink 发现 Hadoop 配置目录。

【讨论】:

  • 一些配置文件在/etc/hadoop/conf 其他没有。我在 flink 配置中指向这个目录,但它没有改变任何东西。
  • 能否执行env命令查看是否设置了环境变量?还有,你是不是把fs.hdfs.hadoopconf: /etc/hadoop/放到Flink配置文件里了? /etc/hadoop 是否包含 Hadoop xml 配置文件?
  • HADOOP_HOME 未设置。 /etc/hadoop/conf 包含一些配置文件,但不是全部。例如,它包含hdfs-site.xml,但不包含hdfs-default.xml。根据 flinks 文档,这两个文件是必需的。
  • 你可以执行export HADOOP_CONF_DIR=/etc/hadoop/conf再试一次吗?
  • 不客气 :) 将 fs.hdfs.hadoopconf: /etc/hadoop/conf 放入 Flink 配置中也应该可以。
【解决方案2】:

如果我是你,我会试试这个:

./bin/yarn-session.sh -n 1 -jm 768 -tm 768

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 2016-11-06
    • 2019-12-08
    • 1970-01-01
    • 2014-05-08
    • 2011-10-10
    相关资源
    最近更新 更多