【问题标题】:Apache-Beam exception while running WordCount example in eclipse在 Eclipse 中运行 WordCount 示例时出现 Apache-Beam 异常
【发布时间】:2016-10-27 13:08:16
【问题描述】:

在eclipse中使用下载的maven依赖

<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-runners-direct-java</artifactId>
<version>0.2.0-incubating</version></dependency>

将gs路径更改为C://examples//misc.txt后下载并运行WordCount示例时。得到以下异常。我没有传递任何跑步者。如何传递跑步者选项和输出参数从 Eclipse 运行时??

    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.IllegalStateException: Failed to validate C://examples//misc.txt
    at org.apache.beam.sdk.io.TextIO$Read$Bound.apply(TextIO.java:288)
    at org.apache.beam.sdk.io.TextIO$Read$Bound.apply(TextIO.java:195)
    at org.apache.beam.sdk.runners.PipelineRunner.apply(PipelineRunner.java:76)
    at org.apache.beam.runners.direct.DirectRunner.apply(DirectRunner.java:205)
    at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:401)
    at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:324)
    at org.apache.beam.sdk.values.PBegin.apply(PBegin.java:59)
    at org.apache.beam.sdk.Pipeline.apply(Pipeline.java:174)
    at org.apache.beam.examples.WordCount.main(WordCount.java:206)
Caused by: java.io.IOException: Unable to find handler for C://examples//misc.txt
    at org.apache.beam.sdk.util.IOChannelUtils.getFactory(IOChannelUtils.java:188)
    at org.apache.beam.sdk.io.TextIO$Read$Bound.apply(TextIO.java:283)
    ... 8 more

【问题讨论】:

    标签: apache-beam


    【解决方案1】:

    我相信 Apache Beam 会解析 C://directory/file 类似于 http://domain/file 的语法——它会认为 C 是一个协议名称,而 directory 是一个域。内部异常是说C 是一个未知协议。

    在引用本地文件时,请尽量避免使用:// 符号。我建议使用常规的 Windows 标准:C:\directory\file

    【讨论】:

    • 它通过参数 --output=C:\\dir\\beam_material\\result 很好地给出了输出。但是在删除临时文件时出现异常 Caused by: java.nio.file.InvalidPathException: Illegal char at index 46: C:\\dir\\beam_material\\result-temp- * 在 sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:18) 在 org.apache.beam.sdk.io.FileBasedSink$FileBasedWriteOperation.removeTemporaryFiles(FileBasedSink.java:392)
    • 清理过程中的异常是一个bug。我已经提交了BEAM-863 问题,标记为 0.4.0 版本的阻塞。请在那里观看/评论以获取更新。很抱歉!
    • ,非常感谢!!
    • 字数的输出被打印在 4 个不同的文件中。它应该打印在一个文件中吗?我该怎么做.. 有没有我遗漏的具体步骤?
    • 是的——这很正常。甚至在Quickstart 中也提到了它。这些文件的确切数量由运行程序决定,使其能够灵活地进行高效的分布式执行。您可以使用withNumShards API 对此进行一定程度的控制,但这有时会带来性能成本,具体取决于几个因素。
    猜你喜欢
    • 1970-01-01
    • 2014-09-08
    • 2013-11-15
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多