Apache光束WordCount在Windows中运行错误

时间:2017-05-24 01:31:21

标签: maven google-cloud-dataflow apache-beam

首先运行

尝试运行Apache Beam(版本2.0.0)的WordCount示例
$ mvn archetype:generate \
  -DarchetypeGroupId=org.apache.beam \
  -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
  -DarchetypeVersion=2.0.0 \
  -DgroupId=org.example \
  -DartifactId=word-count-beam \
  -Dversion="0.1" \
  -Dpackage=org.apache.beam.examples \
  -DinteractiveMode=false

然后运行

$ mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount -Dexec.args="--inputFile=pom.xml --output=counts" -Pdirect-runner

并收到以下错误

  

[错误]无法在项目word-count-beam上执行目标org.codehaus.mojo:exec-maven-plugin:1.4.0:java(default-cli):执行时出现异常    Java类。 null:InvocationTargetException:java.lang.IllegalStateException:U   无法找到d - >的注册商。 [帮助1]

但是,如果我在2017年3月(Beam v0.6.0)运行下载和构建的相同项目,一切正常。我只是想知道Beam版本的更新导致了这个错误。

2 个答案:

答案 0 :(得分:2)

由于 TextIO#from(" path_to_file")方法不支持Windows文件系统路径,因此发生此错误。 例如,以下代码抛出 IllegalStateException

TextIO.read().from("d:\\file.txt") // also "file:\\D:\\file.txt" throw exc
  

线程中的异常" main"   org.apache.beam.sdk.Pipeline $ PipelineExecutionException:   java.lang.IllegalStateException:无法找到d

的注册商

我希望Apache Beam团队能够在不久的将来修复它......

答案 1 :(得分:0)

此错误似乎表明您正在尝试使用无效方案访问文件。 它来自这里:FileSystems.java

这可能是您操作系统的问题。

您能提供有关您的操作系统和开发环境的信息吗?

编辑: 既然你正在使用Windows,正如MeetJoeBlack所解释的那样 - 我的第一个假设可能是正确的。

我建议您尝试使用此Maven Docker Image

通过Docker运行代码

你可以在那里阅读howto - 如果你需要更多帮助,请点击我。