当前位置: 首页 > 知识库问答 >
问题:

EMR中使用缩线会话的下横梁管道

董意蕴
2023-03-14

我试图运行一个基本的wordcount光束管道从python SDK与flink纱线会话在AWS EMR。我使用了flink runner和portable runner,得到了下面列出的两个不同的错误。来自这两种运行者的作业都显示在flink UI中,并在我的笔记本电脑上通过本地flink会话成功运行。

对于FlinkRunner,作业以BeamApp-hadoop-0617202523-14894e58的形式运行,并给出错误:

ERROR:root:java.lang.NoClassDefFoundError: Could not initialize class org.apache.beam.runners.core.construction.SerializablePipelineOptions
ERROR:root:java.util.ServiceConfigurationError: com.fasterxml.jackson.databind.Module: Provider com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule not a subtype

我假定这些是依赖项错误,并尝试在/usr/lib/flink/lib目录中获取上述JAR。当应用程序启动时记录类路径时,yarn容器日志列出了正确的JAR,但错误仍然存在。

Apache Beam版本2.22.0、flink版本1.10.0、emr版本5.30.0。

共有1个答案

武元白
2023-03-14

我在Apache beam+AWS EMR+Flink中遇到了类似的问题,我通过从flinkPipelineOptions.filestostage中排除jackson-core、jackson-annotation和jackson-databind依赖项来解决这个问题。

options.setFilesToStage(Arrays.stream(System.getProperty("java.class.path").split(":"))
   .filter(d -> !d.contains("com.fasterxml.jackson.core"))
   .filter(d -> Files.exists(Paths.get(d)))
   .collect(Collectors.toList()));
 类似资料:
  • 问题内容: 我正在构建一个系统,其中来自客户端的每个请求都会在服务器端生成多个线程。然后,每个线程都使用一个或多个DAO(某些DAO可以同时被多个线程使用)。Spring 将所有DAO注入()到我的线程类中。每个DAO也接受注射。 什么是在这些多个DAO之间管理Hibernate会话的正确方法,这样我就不会因多线程环境而遇到问题(例如,来自不同线程的几个DAO试图同时使用同一会话)? 我在Hibe

  • 问题内容: 我正在研究GWT-ext应用程序。在此应用程序中,我管理了客户端会话。为此,我编写以下代码: 管理会话:import com.google.gwt.user.client.Timer; 获取用户活动: 这段代码可以正常工作,但是我的问题是:随着时间的推移,该代码将自动注销。对于我的代码,我希望单击或按下它即可注销。情况如下:如果用户登录并且注销时间为5分钟,则根据上述代码,用户现在没有

  • 成功登录后,我想用新的url继续进行进一步的请求处理。但url正在调用springmvc中的公开服务,其中的安全配置不会检查会话身份验证以获取传入url。请看下面的代码。 当jsp页面提交登录验证时,J_security_check调用目标url,该URL随后调用拦截器模式/home*并验证登录凭证。 如果我在登录之前调用公开的服务“/address/userid/”,它将直接调用服务方法,使其成

  • 我是Spring保安的新手。我有一个要求做一个基于URL的身份验证,其中用户需要被认证基于唯一的引用,将发送每次作为一个参数在URL。我将把这个引用传递给webservice,获取所需的数据,然后对用户进行身份验证(并设置角色)。身份验证和授权部分工作正常。 但是,当我再次尝试访问应用程序时(现在在URL中使用了不同的引用),它表示“SecurityContextholder没有用匿名令牌填充,因

  • 成功开发 Web 应用程序的难题之一是在一次用户访问,即会话期间,当用户在一个应用程序的页与页之间跳转的同时,维护用户信息。HTTP 是一种无状态协议,也就是说,Web 服务器将某页的每次访问都当作相互无关的访问来处理;服务器不保留前一次访问的任何信息,即使访问就发生在当前访问的几秒钟之前。正因为这种不记忆以前访问的特性使得编写联机目录之类的应用程序很困难,此类应用程序可能需要跟踪用户在目录的不同

  • 从本节召回 我什么时候做一个 Session ,什么时候提交,什么时候关闭? 介绍了“会话范围”的概念,重点介绍了Web应用程序和链接 Session 一个Web请求。大多数现代Web框架都包含集成工具,因此 Session 可以自动管理,这些工具应该在可用时使用。 sqlAlchemy包含自己的helper对象,这有助于建立用户定义的 Session 范围。第三方集成系统也使用它来帮助构建其集成