2016-07-12 20 views
0

で正常に動作します。ここに私のPOMは、次のとおりです。Sparkでfat jarを作成するときにscheme:hdfsのFileSystemはありません。</p> <pre><code>java -jar -myApp.jar [args] </code></pre> <p>を私はEclipseで私のアプリを実行すると、それは完璧に動作します:私は私のスパークプログラムと脂肪のjarを行い、その後、私はそれを使用して起動したとき、私はそのエラーを取得し、Eclipseの火星

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.compiler.source>1.7</maven.compiler.source> 
    <maven.compiler.target>1.7</maven.compiler.target> 
    </properties> 

    <dependencies> 
<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-streaming-kafka_2.10</artifactId> 
    <version>1.5.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.kafka</groupId> 
    <artifactId>kafka_2.10</artifactId> 
    <version>0.9.0.1</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-streaming_2.10</artifactId> 
    <version>1.6.1</version> 
</dependency> 
<dependency> 
    <groupId>com.google.code.gson</groupId> 
    <artifactId>gson</artifactId> 
    <version>2.6.2</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-hdfs</artifactId> 
    <version>2.6.0</version> 
</dependency> 
</dependencies> 
<build> 
<plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <version>2.1</version> 
       <executions> 
        <execution> 
        <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
         <configuration> 
          <source>1.7</source> 
          <target>1.7</target> 
          <transformers> 
           <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
            <resource>reference.conf</resource> 
           </transformer> 
           <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
            <mainClass>gft.hbaseMedia.MainSparkCopyHDFS</mainClass> 
           </transformer> 
          </transformers> 
           <filters> 
            <filter> 
             <artifact>*:*</artifact> 
             <excludes> 
              <exclude>META-INF/*.SF</exclude> 
              <exclude>META-INF/*.DSA</exclude> 
              <exclude>META-INF/*.RSA</exclude> 
             </excludes> 
            </filter> 
           </filters> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
    </plugins> 
    <resources> 
      <resource> 
       <directory>resources</directory> 
      </resource> 
     </resources> 
    </build> 
</project> 

問題を与えるコードの一部は次のとおりです。

Configuration conf = new Configuration(); 
conf.set("fs.defaultFS", hdfsConfPath); 
FileSystem fs = FileSystem.get(conf); 

私はそれが何らかの形で物事を台無しですMavenの知っているが、私はこの問題を解決する方法がわかりません!

+0

はhttp://stackoverflow.com/questions/17265002/hadoop-no-filesystem-for-scheme-file – amitmah

+0

@amitmah私はすでに、単純にしようとしたIていた参照してください。別のエラーが発生します。推奨されないクラスについては、 – Vale

+0

があります。eclipseのmaven設定をチェックして、正しいsettings.xmlファイルを参照してください。 MaybeeのEclipseの組み込みバージョンは異なっています。 – amitmah

答えて

0

@amitmahが私に指摘した答えのように見えるのは、本当に正しいもの(2番目に投票された人物、Maven-shadeトランスフォーマー)です。
最初のものはClassNotFound例外を与えます。また、Maven陰影トランスフォーマーもそれを示します。
私のためのソリューションを持っているすでにスパークのものだけを使用していた、
(Mavenのシェードを使用する人々のために)私の質問の下のコメントで与えられた答えを適用し、
それは紛争のいくつかの種類を作成して、HDFSの依存関係を削除実行時にとなるため、Mavenビルド中にエラーは発生しません。ここ
はポンポンで変圧器です:

<transformers> 
     <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
     <resource>reference.conf</resource> 
     </transformer> 
     <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
     <mainClass>gft.hbaseMedia.MainSparkCopyHDFS</mainClass> 
     </transformer> 
     <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> 
</transformers> 
関連する問題

 関連する問題