当前位置: 首页 > 面试题库 >

是否在Beam中将SortValues转换Java SDK扩展仅在hadoop环境中运行?

赏梓
2023-03-14
问题内容

我已经尝试在本地计算机(Windows)上使用SortValues转换的示例代码DirectRunner

PCollection<KV<String, KV<String, Integer>>> input = ...

PCollection<KV<String, Iterable<KV<String, Integer>>>> grouped =
input.apply(GroupByKey.<String, KV<String, Integer>>create());

PCollection<KV<String, Iterable<KV<String, Integer>>>> groupedAndSorted =
grouped.apply(SortValues.<String, String, Integer>create(BufferedExternalSorter.options()));

但是我得到了错误PipelineExecutionException: java.lang.NoClassDefFoundError: org/apache/hadoop/io/Writable。这是否意味着此转换功能仅在Hadoop环境中有效?


问题答案:

从今天开始,如果您使用Beam的版本低于2.0.0,则必须在maven pom文件中添加两个hadoop依赖项,此SortValues模块才能正常工作。

  1. 添加hadoop-common2.7.3或更高版本
  2. 添加hadoop-mapreduce-client-core2.7.3或更高版本。

否则,您只需要使用发行版本> = 2.0.0的Beam。



 类似资料:
  • 我有一个eclipse插件,创建了一个新的扩展点,所有设置都显示在链接中:http://www.vogella.com/tutorials/EclipseExtensionPoint/article.html 现在使用这个扩展点创建了一个带有扩展的新插件,也显示在上面的链接中。现在,当我在调试环境中运行它时,一切正常,但当我将这两个插件从Eclipse导出到插件jar文件,并将其用于我的应用程序时

  • 我正在尝试使用Apache Beam中JRecord中的CobolIoProvider类将EBCDIC文件转换为ASCII。 我正在使用的代码: 代码根据需要读取和转换文件。我只能从本地系统读取cobolfilename和copybookname,它们基本上分别是EBCDIC文件和copybook的路径。但是,当我试图从GCS读取文件时,它失败了,FileNotFoundException--“文

  • 主要内容:Docker 部署,创建容器,Hadoop 安装由于 Hadoop 是为集群设计的软件,所以我们在学习它的使用时难免会遇到在多台计算机上配置 Hadoop 的情况,这对于学习者来说会制造诸多障碍,主要有两个: 昂贵的计算机集群。多计算机构成的集群环境需要昂贵的硬件. 难以部署和维护。在众多计算机上部署相同的软件环境是一个大量的工作,而且非常不灵活,难以在环境更改后重新部署。 为了解决这些问题,我们有一个非常成熟的方式 Docker。 Docke

  • 问题内容: 我是否可以制作仅适用于字符串的Array扩展? 问题答案: 从Swift 2开始,这可以通过 协议扩展 来实现,该 协议扩展 为符合类型的类型(可选地受其他约束限制)提供方法和属性实现。 一个简单的例子:为所有符合(例如)的类型定义一个方法,其中sequence元素为: 不能直接为扩展方法定义扩展方法,而只能为符合某种协议(带有可选约束)的所有类型定义扩展方法。因此,必须找到一种协议,

  • 主要内容:1.虚拟机环境准备,2.安装JDK,3.安装Hadoop,4.Hadoop目录结构1.虚拟机环境准备 (1)在/opt目录下创建module、software文件夹 (2)修改module、software文件夹的所有者cd 2.安装JDK 1. 卸载现有JDK (1)查询是否安装Java软件: (2)如果安装的版本低于1.7,卸载该JDK: (3)查看JDK安装路径: 2. 用SecureCRT工具将JDK导入到opt目录下面的software文件夹下面,如图2-28所示 “

  • 在可能的副本上: 此线程不是在询问如何扩展类。它问为什么一个声明为的类可能会扩展另一个类。 从该线程: <code>final</code>类只是一个不能扩展的类。 但是,我有一个帮助程序类,我声明它是,并了另一个类: Eclipse没有检测到任何错误。我已经测试了这个类,并且PDF是成功生成的,没有错误。 为什么我能够课程,而理论上我不应该延长? (如果重要的话,我正在使用Java7。)