【问题标题】:Not implemented by the S3FileSystem FileSystem implementation Hadoop Jar未由 S3FileSystem FileSystem 实现 Hadoop Jar 实现
【发布时间】:2014-12-17 09:55:08
【问题描述】:

我已经在我的 maven pom 中添加了这些构建配置,因为我希望 Apache Solr 依赖项与 Jar 捆绑在一起。否则我得到 SolarServerException: ClassNotFound,现在我没有得到那个异常,而是下面显示的一个新异常(在 Pom sn-p 之后)

<build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass></mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
                        <phase>package</phase> <!-- bind to the packaging phase -->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

这会创建两个 Jar 文件,一个具有依赖关系,一个是简单的 jar。 Jar with Deps,抛出这个错误,

Exception in thread "main" java.lang.UnsupportedOperationException: Not implemented by the S3FileSystem FileSystem implementation
    at org.apache.hadoop.fs.FileSystem.getScheme(FileSystem.java:216)
    at org.apache.hadoop.fs.FileSystem.loadFileSystems(FileSystem.java:2564)
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2574)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2630)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2612)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:169)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:354)
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)
    at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.addInputPath(FileInputFormat.java:518)
    at com.myproj.core.NewWordCount.main(NewWordCount.java:59)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

请帮助我做错了什么,现在hadoop直接寻找s3FileSystem实现。

用这个命令运行它。

hadoop jar com.myproj-0.0.1-SNAPSHOT-jar-with-dependencies.jar com.myproj.core.NewWordCount tempdata/file01 output10/

附:使用简单的 Jar(无依赖项)完全可以正常工作

【问题讨论】:

    标签: java maven hadoop solr hadoop2


    【解决方案1】:

    您可能需要删除 hadoop-core 依赖项,因为您也有 hadoop-hdfs(即使不是直接的)。

    【讨论】:

    • 这个问题解决了吗?如果是,请分享解决方案
    猜你喜欢
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多