首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在电子病历上对S3进行闪烁写入

在电子病历上对S3进行闪烁写入
EN

Stack Overflow用户
提问于 2018-01-23 02:30:15
回答 2查看 507关注 0票数 1

我正在尝试写一些输出到S3使用电子病历与Flink。我使用的是Scala 2.11.7、Flink 1.3.2和EMR 5.11。但是,我得到了以下错误:

代码语言:javascript
复制
java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.addResource(Lorg/apache/hadoop/conf/Configuration;)V
    at com.amazon.ws.emr.hadoop.fs.EmrFileSystem.initialize(EmrFileSystem.java:93)
    at org.apache.flink.runtime.fs.hdfs.HadoopFileSystem.initialize(HadoopFileSystem.java:345)
    at org.apache.flink.core.fs.FileSystem.getUnguardedFileSystem(FileSystem.java:350)
    at org.apache.flink.core.fs.FileSystem.get(FileSystem.java:389)
    at org.apache.flink.core.fs.Path.getFileSystem(Path.java:293)
    at org.apache.flink.api.common.io.FileOutputFormat.open(FileOutputFormat.java:222)
    at org.apache.flink.api.java.io.TextOutputFormat.open(TextOutputFormat.java:78)
    at org.apache.flink.streaming.api.functions.sink.OutputFormatSinkFunction.open(OutputFormatSinkFunction.java:61)
    at org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:36)
    at org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:111)
    at org.apache.flink.streaming.runtime.tasks.StreamTask.openAllOperators(StreamTask.java:376)
    at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:253)
    at org.apache.flink.runtime.taskmanager.Task.run(Task.java:702)
    at java.lang.Thread.run(Thread.java:748)

我的build.sbt看起来像这样:

代码语言:javascript
复制
libraryDependencies ++= Seq(
  "org.apache.flink" % "flink-core" % "1.3.2",
  "org.apache.flink" % "flink-scala_2.11" % "1.3.2",
  "org.apache.flink" % "flink-streaming-scala_2.11" % "1.3.2",
  "org.apache.flink" % "flink-shaded-hadoop2" % "1.3.2",
  "org.apache.flink" % "flink-clients_2.11" % "1.3.2",
  "org.apache.flink" %% "flink-avro" % "1.3.2",
  "org.apache.flink" %% "flink-connector-filesystem" % "1.3.2"
)

我也找到了这篇文章,但它并没有解决这个问题:External checkpoints to S3 on EMR

我只是将输出放到S3:input.writeAsText("s3://test/flink")中。如有任何建议,我们将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2018-01-23 03:48:57

不确定flink-shaded-hadoop和EMR版本的良好组合。在几次尝试和失败之后,我能够使用flink-shaded-hadoop2的一个新版本-- "org.apache.flink" % "flink-shaded-hadoop2" % "1.4.0" --来写入S3

票数 0
EN

Stack Overflow用户

发布于 2020-05-17 02:55:37

你的问题可能是因为EMR/Yarn/Flink在你自己的类之前加载了一些库,导致NoSuchMethodError:加载的类不是你提供的类,而是EMR提供的类。注意JobManager/TaskManager日志中的类路径。一种解决方案是将您自己的jars放在Flink lib目录中,以便在EMR之前加载它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48388074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档