2017-06-20 8 views
1

私はウェブ全体を見て、これがかなり一般的なエラーであることを発見しましたが、解決策は私を助けませんでした。AvroがSnappyCodecを探していますNoClassDefFoundErrorを投げています

私はカフカのトピックから読んでいます。今まで私は、そうやって問題を持っていなかったが、私はAWS環境ではなく、私のIDE(IntelliJの)にFLINKクラスタまでに実行したときに、今私は、このエラーを取得しています:

NoClassDefFoundError: org/xerial/snappy/Snappy 
at org.apache.avro.file.SnappyCodec.decompress(SnappyCodec.java:58) 
at org.apache.avro.file.DataFileStream$DataBlock.decompressUsing(DataFileStream.java:352) 
at org.apache.avro.file.DataFileStream.hasNext(DataFileStream.java:199) 
at flink.streaming.mtsas.functions.AvroDeserializationSchema.deserialize(AvroDeserializationSchema.java:37) 
at org.apache.flink.streaming.util.serialization.KeyedDeserializationSchemaWrapper.deserialize(KeyedDeserializationSchemaWrapper.java:39) 
at org.apache.flink.streaming.connectors.kafka.internal.Kafka09Fetcher.runFetchLoop(Kafka09Fetcher.java:145) 
at org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase.run(FlinkKafkaConsumerBase.java:255) 
at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:87) 
at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:55) 
at org.apache.flink.streaming.runtime.tasks.SourceStreamTask.run(SourceStreamTask.java:95) 
at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:262) 
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:702) 
at java.lang.Thread.run(Thread.java:745) 

私はオンラインで見つけることができるのは、通常の理由は、期待されるものよりも異なるバージョンのコンパイルと関係しているように思えます。しかし、私はただの損失です。ここでは、同様のpom.xmlは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?> 
<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> 

<parent> 
    <groupId>com.group.version1</groupId> 
    <artifactId>parent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</parent> 

<artifactId>this.artifact</artifactId> 

<properties> 
    <flink.version>1.3.0</flink.version> 
    <avro.version>1.8.1</avro.version> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties> 

<dependencies> 

    <dependency> 
     <groupId>org.apache.flink</groupId> 
     <artifactId>flink-java</artifactId> 
     <version>${flink.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.flink</groupId> 
     <artifactId>flink-connector-nifi_2.11</artifactId> 
     <version>${flink.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.flink</groupId> 
     <artifactId>flink-streaming-java_2.11</artifactId> 
     <version>${flink.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>2.8.8</version> 
    </dependency> 

    <dependency> 
     <groupId>com.google.code.gson</groupId> 
     <artifactId>gson</artifactId> 
     <version>2.8.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>2.8.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.groovy</groupId> 
     <artifactId>groovy-all</artifactId> 
     <version>2.4.5</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>21.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.googlecode.json-simple</groupId> 
     <artifactId>json-simple</artifactId> 
     <version>1.1.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.avro</groupId> 
     <artifactId>avro</artifactId> 
     <version>${avro.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.avro</groupId> 
     <artifactId>avro-maven-plugin</artifactId> 
     <version>${avro.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.flink</groupId> 
     <artifactId>flink-connector-kafka-0.10_2.11</artifactId> 
     <version>${flink.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.flink</groupId> 
     <artifactId>flink-connector-cassandra_2.11</artifactId> 
     <version>${flink.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.flink</groupId> 
     <artifactId>flink-connector-filesystem_2.10</artifactId> 
     <version>${flink.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.flink</groupId> 
     <artifactId>flink-avro</artifactId> 
     <version>0.10.2</version> 
    </dependency> 

    <dependency> 
     <groupId>com.datastax.cassandra</groupId> 
     <artifactId>cassandra-driver-core</artifactId> 
     <version>3.2.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.blah</groupId> 
     <artifactId>custom-resources</artifactId> 
     <version>1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.blah</groupId> 
     <artifactId>custom-executor</artifactId> 
     <version>1.0</version> 
    </dependency> 

    <dependency> 
     <groupId>net.sf.dozer</groupId> 
     <artifactId>dozer</artifactId> 
     <version>5.4.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.group.version1</groupId> 
     <artifactId>test-utils</artifactId> 
     <scope>test</scope> 
     <exclusions> 
      <exclusion> 
       <groupId>org.slf4j</groupId> 
       <artifactId>slf4j-simple</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.flink</groupId> 
     <artifactId>flink-statebackend-rocksdb_2.11</artifactId> 
     <version>1.2.1</version> 
    </dependency> 

    <dependency> 
     <groupId>com.datastax.cassandra</groupId> 
     <artifactId>cassandra-driver-dse</artifactId> 
     <version>3.0.0-rc1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.datastax.cassandra</groupId> 
     <artifactId>dse-driver</artifactId> 
     <version>1.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-common</artifactId> 
     <version>2.7.2</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.avro</groupId> 
      <artifactId>avro-maven-plugin</artifactId> 
      <version>${avro.version}</version> 
      <executions> 
       <execution> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>schema</goal> 
        </goals> 
        <configuration> 
         <sourceDirectory>${project.basedir}/src/main/customavro/</sourceDirectory> 
         <outputDirectory>${project.basedir}/src/main/java/</outputDirectory> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
        <configuration> 
         <transformers> 
          <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
           <manifestEntries> 
            <Main-Class>flink.streaming.custom.CustomProcessor</Main-Class> 
           </manifestEntries> 
          </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> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-install-plugin</artifactId> 
      <version>2.5</version> 
      <executions> 
       <execution> 
        <id>inst_1</id> 
        <phase>clean</phase> 
        <goals> 
         <goal>install-file</goal> 
        </goals> 
        <configuration> 
         <groupId>com.blah</groupId> 
         <artifactId>custom-resources</artifactId> 
         <version>1.0</version> 
         <packaging>jar</packaging> 
         <file>${basedir}/lib/custom_resources-1.0.jar</file> 
        </configuration> 
       </execution> 
       <execution> 
        <id>inst_2</id> 
        <phase>clean</phase> 
        <goals> 
         <goal>install-file</goal> 
        </goals> 
        <configuration> 
         <groupId>com.blah</groupId> 
         <artifactId>custom-executor</artifactId> 
         <version>1.0</version> 
         <packaging>jar</packaging> 
         <file>${basedir}/lib/custom-executor-1.0.jar</file> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

私はそれが難しいもののない確信しているが、私は本当にちょうどあなたが良いよりも害をやって終わるのポイントを直撃しています何か別のものを試してみる。

事前にお問い合わせいただきありがとうございます。

EDIT:

はまた、私はそのパス(org.xerial.snappy.Snappy)で私のIDEでSnappy.javaを見つけることができることを追加する必要があります。

答えて

関連する問題