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

kq4fsx7k  于 2023-03-16  发布在  Java
关注(0)|答案(2)|浏览(76)

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

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环境中工作?

m4pnthwp

m4pnthwp1#

到目前为止,如果您使用的是发布版本低于2.0.0的Beam,那么您必须在maven pom文件中添加两个hadoop依赖项,才能使SortValues模块正常工作。
1.添加hadoop-common版本2.7.3或更高版本
1.添加hadoop-mapreduce-client-core版本2.7.3或更高版本。
否则,您只需要使用发布版本〉= 2.0.0的Beam。

xytpbqjk

xytpbqjk2#

我使用的是beam 2.34.0版本,在本地我必须添加以上两个依赖项&本地排序工作。但如果我在任何环境中添加,它开始打破其他现有的管道与错误异常在主要。

相关问题