This is a known problem with how the local file system is being interacted
with as is evident by the similar test failures when running the Apache
Beam unit tests on Windows:
https://issues.apache.org/jira/browse/BEAM-2299

I would suggest trying to use "file:///c:/my/path/to/file.txt"

There is a general proposal to change how we work with resource paths:
https://issues.apache.org/jira/browse/BEAM-2283



On Sun, May 21, 2017 at 6:03 PM, Shuangyin Ge <[email protected]> wrote:

> Hello team,
>
> Not sure if any can share some lights. I am getting "Unable to find
> registrar for c" error while running
>
> $ mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
>      -Dexec.args="--inputFile=pom.xml --output=counts" -Pdirect-runner
>
> following the Java Quickstart for Beam https://beam.apache.org/
> get-started/quickstart-java/
>
> Complete output is shown below:
>
> [INFO] Scanning for projects...
> [WARNING]
> [WARNING] Some problems were encountered while building the effective
> model for org.example:word-count-beam:jar:0.1
> [WARNING] 'build.plugins.plugin.version' for 
> org.apache.maven.plugins:maven-jar-plugin
> is missing. @ line 80, column 15
> [WARNING]
> [WARNING] It is highly recommended to fix these problems because they
> threaten the stability of your build.
> [WARNING]
> [WARNING] For this reason, future Maven versions might no longer support
> building such malformed projects.
> [WARNING]
> [INFO]
> [INFO] ------------------------------------------------------------
> ------------
> [INFO] Building word-count-beam 0.1
> [INFO] ------------------------------------------------------------
> ------------
> [INFO]
> [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @
> word-count-beam ---
> [WARNING] Using platform encoding (Cp1252 actually) to copy filtered
> resources, i.e. build is platform dependent!
> [INFO] skip non existing resourceDirectory C:\Users\ges\Workspace\word-co
> unt-beam\src\main\resources
> [INFO]
> [INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @
> word-count-beam ---
> [INFO] Changes detected - recompiling the module!
> [WARNING] File encoding has not been set, using platform encoding Cp1252,
> i.e. build is platform dependent!
> [INFO] Compiling 10 source files to C:\Users\ges\Workspace\word-co
> unt-beam\target\classes
> [INFO]
> [INFO] --- exec-maven-plugin:1.4.0:java (default-cli) @ word-count-beam ---
> [WARNING]
> java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
> ssorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
> thodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: org.apache.beam.sdk.Pipeline$PipelineExecutionException:
> java.lang.IllegalStateException: Unable to find registrar for c
> at org.apache.beam.runners.direct.DirectRunner$DirectPipelineRe
> sult.waitUntilFinish(DirectRunner.java:322)
> at org.apache.beam.runners.direct.DirectRunner$DirectPipelineRe
> sult.waitUntilFinish(DirectRunner.java:292)
> at org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:200)
> at org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:63)
> at org.apache.beam.sdk.Pipeline.run(Pipeline.java:295)
> at org.apache.beam.sdk.Pipeline.run(Pipeline.java:281)
> at org.apache.beam.examples.WordCount.main(WordCount.java:184)
> ... 6 more
> Caused by: java.lang.IllegalStateException: Unable to find registrar for c
> at org.apache.beam.sdk.io.FileSystems.getFileSystemInternal(Fil
> eSystems.java:447)
> at org.apache.beam.sdk.io.FileSystems.match(FileSystems.java:111)
> at org.apache.beam.sdk.io.FileSystems.matchResources(FileSystems.java:174)
> at org.apache.beam.sdk.io.FileSystems.delete(FileSystems.java:321)
> at org.apache.beam.sdk.io.FileBasedSink$Writer.cleanup(FileBase
> dSink.java:905)
> at org.apache.beam.sdk.io.WriteFiles$WriteShardedBundles.proces
> sElement(WriteFiles.java:376)
> [INFO] ------------------------------------------------------------
> ------------
> [INFO] BUILD FAILURE
> [INFO] ------------------------------------------------------------
> ------------
> [INFO] Total time: 10.279 s
> [INFO] Finished at: 2017-05-22T08:56:16+08:00
> [INFO] Final Memory: 32M/450M
> [INFO] ------------------------------------------------------------
> ------------
> [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.4.0:java
> (default-cli) on project word-count-beam: An exception occured while
> executing the Java class. null: InvocationTargetException:
> java.lang.IllegalStateException: Unable to find registrar for c -> [Help
> 1]
> [ERROR]
> [ERROR] To see the full stack trace of the errors, re-run Maven with the
> -e switch.
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
> [ERROR]
> [ERROR] For more information about the errors and possible solutions,
> please read the following articles:
> [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExec
> utionException
>
> Pom.xml is as below
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
> Licensed to the Apache Software Foundation (ASF) under one or more
> contributor license agreements. See the NOTICE file distributed with
> this work for additional information regarding copyright ownership.
> The ASF licenses this file to You under the Apache License, Version 2.0
> (the "License"); you may not use this file except in compliance with
> the License. You may obtain a copy of the License at
>
> http://www.apache.org/licenses/LICENSE-2.0
>
> Unless required by applicable law or agreed to in writing, software
> distributed under the License is distributed on an "AS IS" BASIS,
> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> See the License for the specific language governing permissions and
> limitations under the License.
> -->
> <project xmlns="http://maven.apache.org/POM/4.0.0";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/xsd/maven-4.0.0.xsd";>
> <modelVersion>4.0.0</modelVersion>
>
> <groupId>org.example</groupId>
> <artifactId>word-count-beam</artifactId>
> <version>0.1</version>
>
> <packaging>jar</packaging>
>
> <properties>
> <beam.version>2.0.0</beam.version>
> <surefire-plugin.version>2.20</surefire-plugin.version>
> </properties>
>
> <repositories>
> <repository>
> <id>apache.snapshots</id>
> <name>Apache Development Snapshot Repository</name>
> <url>https://repository.apache.org/content/repositories/snapshots/</url>
> <releases>
> <enabled>false</enabled>
> </releases>
> <snapshots>
> <enabled>true</enabled>
> </snapshots>
> </repository>
> </repositories>
>
> <build>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-compiler-plugin</artifactId>
> <version>3.5.1</version>
> <configuration>
> <source>1.7</source>
> <target>1.7</target>
> </configuration>
> </plugin>
>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-surefire-plugin</artifactId>
> <version>2.20</version>
> <configuration>
> <parallel>all</parallel>
> <threadCount>4</threadCount>
> <redirectTestOutputToFile>true</redirectTestOutputToFile>
> </configuration>
> <dependencies>
> <dependency>
> <groupId>org.apache.maven.surefire</groupId>
> <artifactId>surefire-junit47</artifactId>
> <version>2.20</version>
> </dependency>
> </dependencies>
> </plugin>
>
> <!-- Ensure that the Maven jar plugin runs before the Maven
> shade plugin by listing the plugin higher within the file. -->
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-jar-plugin</artifactId>
> </plugin>
>
> <!--
> Configures `mvn package` to produce a bundled jar ("fat jar") for runners
> that require this for job submission to a cluster.
> -->
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-shade-plugin</artifactId>
> <version>3.0.0</version>
> <executions>
> <execution>
> <phase>package</phase>
> <goals>
> <goal>shade</goal>
> </goals>
> <configuration>
> <filters>
> <filter>
> <artifact>*:*</artifact>
> <excludes>
> <exclude>META-INF/LICENSE</exclude>
> <exclude>META-INF/*.SF</exclude>
> <exclude>META-INF/*.DSA</exclude>
> <exclude>META-INF/*.RSA</exclude>
> </excludes>
> </filter>
> </filters>
> <transformers>
> <transformer implementation="org.apache.maven.plugins.shade.resource.Serv
> icesResourceTransformer"/>
> </transformers>
> </configuration>
> </execution>
> </executions>
> </plugin>
> </plugins>
>
> <pluginManagement>
> <plugins>
> <plugin>
> <groupId>org.codehaus.mojo</groupId>
> <artifactId>exec-maven-plugin</artifactId>
> <version>1.4.0</version>
> <configuration>
> <cleanupDaemonThreads>false</cleanupDaemonThreads>
> </configuration>
> </plugin>
> </plugins>
> </pluginManagement>
> </build>
>
> <profiles>
> <profile>
> <id>direct-runner</id>
> <activation>
> <activeByDefault>true</activeByDefault>
> </activation>
> <!-- Makes the DirectRunner available when running a pipeline. -->
> <dependencies>
> <dependency>
> <groupId>org.apache.beam</groupId>
> <artifactId>beam-runners-direct-java</artifactId>
> <version>2.0.0</version>
> <scope>runtime</scope>
> </dependency>
> </dependencies>
> </profile>
>
> <profile>
> <id>apex-runner</id>
> <!-- Makes the ApexRunner available when running a pipeline. -->
> <dependencies>
> <dependency>
> <groupId>org.apache.beam</groupId>
> <artifactId>beam-runners-apex</artifactId>
> <version>${beam.version}</version>
> <scope>runtime</scope>
> </dependency>
> <!--
> Apex depends on httpclient version 4.3.5, project has a transitive
> dependency to httpclient 4.0.1 from
> google-http-client. Apex dependency version being specified explicitly so
> that it gets picked up. This
> can be removed when the project no longer has a dependency on a different
> httpclient version.
> -->
> <dependency>
> <groupId>org.apache.httpcomponents</groupId>
> <artifactId>httpclient</artifactId>
> <version>4.3.5</version>
> <scope>runtime</scope>
> <exclusions>
> <exclusion>
> <groupId>commons-codec</groupId>
> <artifactId>commons-codec</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
> </dependencies>
> </profile>
>
> <profile>
> <id>dataflow-runner</id>
> <!-- Makes the DataflowRunner available when running a pipeline. -->
> <dependencies>
> <dependency>
> <groupId>org.apache.beam</groupId>
> <artifactId>beam-runners-google-cloud-dataflow-java</artifactId>
> <version>${beam.version}</version>
> <scope>runtime</scope>
> </dependency>
> </dependencies>
> </profile>
>
> <profile>
> <id>flink-runner</id>
> <!-- Makes the FlinkRunner available when running a pipeline. -->
> <dependencies>
> <dependency>
> <groupId>org.apache.beam</groupId>
> <artifactId>beam-runners-flink_2.10</artifactId>
> <version>${beam.version}</version>
> <scope>runtime</scope>
> </dependency>
> </dependencies>
> </profile>
>
> <profile>
> <id>spark-runner</id>
> <!-- Makes the SparkRunner available when running a pipeline. Additionally,
> overrides some Spark dependencies to Beam-compatible versions. -->
> <dependencies>
> <dependency>
> <groupId>org.apache.beam</groupId>
> <artifactId>beam-runners-spark</artifactId>
> <version>${beam.version}</version>
> <scope>runtime</scope>
> </dependency>
> <dependency>
> <groupId>org.apache.beam</groupId>
> <artifactId>beam-sdks-java-io-hadoop-file-system</artifactId>
> <version>${beam.version}</version>
> <scope>runtime</scope>
> </dependency>
> <dependency>
> <groupId>org.apache.spark</groupId>
> <artifactId>spark-streaming_2.10</artifactId>
> <version>1.6.2</version>
> <scope>runtime</scope>
> <exclusions>
> <exclusion>
> <groupId>org.slf4j</groupId>
> <artifactId>jul-to-slf4j</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
> <dependency>
> <groupId>com.fasterxml.jackson.module</groupId>
> <artifactId>jackson-module-scala_2.10</artifactId>
> <version>2.8.8</version>
> <scope>runtime</scope>
> </dependency>
> </dependencies>
> </profile>
> </profiles>
>
> <dependencies>
> <!-- Adds a dependency on the Beam SDK. -->
> <dependency>
> <groupId>org.apache.beam</groupId>
> <artifactId>beam-sdks-java-core</artifactId>
> <version>${beam.version}</version>
> </dependency>
>
> <!-- Adds a dependency on the Beam Google Cloud Platform IO module. -->
> <dependency>
> <groupId>org.apache.beam</groupId>
> <artifactId>beam-sdks-java-io-google-cloud-platform</artifactId>
> <version>${beam.version}</version>
> </dependency>
>
> <!-- Dependencies below this line are specific dependencies needed by the
> examples code. -->
> <dependency>
> <groupId>com.google.api-client</groupId>
> <artifactId>google-api-client</artifactId>
> <version>1.22.0</version>
> <exclusions>
> <!-- Exclude an old version of guava that is being pulled
> in by a transitive dependency of google-api-client -->
> <exclusion>
> <groupId>com.google.guava</groupId>
> <artifactId>guava-jdk5</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
>
> <dependency>
> <groupId>com.google.apis</groupId>
> <artifactId>google-api-services-bigquery</artifactId>
> <version>v2-rev295-1.22.0</version>
> <exclusions>
> <!-- Exclude an old version of guava that is being pulled
> in by a transitive dependency of google-api-client -->
> <exclusion>
> <groupId>com.google.guava</groupId>
> <artifactId>guava-jdk5</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
>
> <dependency>
> <groupId>com.google.http-client</groupId>
> <artifactId>google-http-client</artifactId>
> <version>1.22.0</version>
> <exclusions>
> <!-- Exclude an old version of guava that is being pulled
> in by a transitive dependency of google-api-client -->
> <exclusion>
> <groupId>com.google.guava</groupId>
> <artifactId>guava-jdk5</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
>
> <dependency>
> <groupId>com.google.apis</groupId>
> <artifactId>google-api-services-pubsub</artifactId>
> <version>v1-rev10-1.22.0</version>
> <exclusions>
> <!-- Exclude an old version of guava that is being pulled
> in by a transitive dependency of google-api-client -->
> <exclusion>
> <groupId>com.google.guava</groupId>
> <artifactId>guava-jdk5</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
>
> <dependency>
> <groupId>joda-time</groupId>
> <artifactId>joda-time</artifactId>
> <version>2.4</version>
> </dependency>
>
> <dependency>
> <groupId>com.google.guava</groupId>
> <artifactId>guava</artifactId>
> <version>20.0</version>
> </dependency>
>
> <!-- Add slf4j API frontend binding with JUL backend -->
> <dependency>
> <groupId>org.slf4j</groupId>
> <artifactId>slf4j-api</artifactId>
> <version>1.7.14</version>
> </dependency>
>
> <dependency>
> <groupId>org.slf4j</groupId>
> <artifactId>slf4j-jdk14</artifactId>
> <version>1.7.14</version>
> <!-- When loaded at runtime this will wire up slf4j to the JUL backend -->
> <scope>runtime</scope>
> </dependency>
>
> <!-- Hamcrest and JUnit are required dependencies of PAssert,
> which is used in the main code of DebuggingWordCount example. -->
> <dependency>
> <groupId>org.hamcrest</groupId>
> <artifactId>hamcrest-all</artifactId>
> <version>1.3</version>
> </dependency>
>
> <dependency>
> <groupId>junit</groupId>
> <artifactId>junit</artifactId>
> <version>4.12</version>
> </dependency>
>
> <!-- The DirectRunner is needed for unit tests. -->
> <dependency>
> <groupId>org.apache.beam</groupId>
> <artifactId>beam-runners-direct-java</artifactId>
> <version>${beam.version}</version>
> <scope>test</scope>
> </dependency>
> </dependencies>
> </project>
>
>
>
> Thanks in advance.
>

Reply via email to