Hi, I added the dependencies while trying to resolve the same issue, thought I was missing them.
Thanks On Thu, Sep 9, 2021 at 4:26 PM Robert Metzger <[email protected]> wrote: > Hey, > > Why do you have these dependencies in your pom? > > <!-- > https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients --> > <dependency> > <groupId>org.apache.kafka</groupId> > <artifactId>kafka-clients</artifactId> > <version>2.8.0</version> > </dependency> > > <dependency> > <groupId>org.apache.kafka</groupId> > <artifactId>kafka_2.12</artifactId> > <version>2.8.0</version> > </dependency> > > > They are not needed for using the Kafka connector of Flink (the flink > kafka connector dependencies pulls the required dependencies) > > > On Thu, Sep 9, 2021 at 12:02 PM Harshvardhan Shinde < > [email protected]> wrote: > >> Hi, >> >> I'm trying a simple flink job that reads data from a kafka topic and >> creates a Hive table. >> >> I'm following the steps from here >> <https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/connectors/table/hive/overview/#connecting-to-hive> >> . >> >> Here's my code: >> >> import org.apache.flink.table.api.EnvironmentSettings; >> import org.apache.flink.table.api.Table; >> import org.apache.flink.table.api.TableEnvironment; >> import org.apache.flink.table.catalog.hive.HiveCatalog; >> >> EnvironmentSettings settings = >> EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build(); >> TableEnvironment tableEnv = TableEnvironment.create(settings); >> >> String name = "myhive"; >> String defaultDatabase = "harsh_test"; >> String hiveConfDir = "/etc/hive/conf"; >> >> HiveCatalog hive = new HiveCatalog(name, defaultDatabase, hiveConfDir); >> tableEnv.registerCatalog(name, hive); >> >> // set the HiveCatalog as the current catalog of the session >> tableEnv.useCatalog(name); >> >> tableEnv.executeSql("CREATE TABLE IF NOT EXISTS transactions (\n" + >> " `created_at` TIMESTAMP(3) METADATA FROM 'timestamp',\n" + >> " `partition` BIGINT METADATA VIRTUAL,\n" + >> " `offset` BIGINT METADATA VIRTUAL,\n" + >> " account_id BIGINT,\n" + >> " amount BIGINT,\n" + >> " transaction_time TIMESTAMP(3),\n" + >> " WATERMARK FOR transaction_time AS transaction_time - INTERVAL '5' >> SECOND\n" + >> ") WITH (\n" + >> " 'connector' = 'kafka',\n" + >> " 'topic' = 'flink-stream-table',\n" + >> " 'properties.bootstrap.servers' = '<BROKER_ADDRESS>:9092',\n" + >> " 'scan.startup.mode' = 'earliest-offset',\n" + >> " 'format' = 'csv'\n" + >> ")"); >> >> Table table = tableEnv.sqlQuery("Select * from transactions"); >> table.execute().print(); >> >> The code builds successfully, but I'm getting the following runtime error: >> >> Caused by: java.util.concurrent.CompletionException: >> java.lang.NoClassDefFoundError: >> org/apache/kafka/common/serialization/ByteArrayDeserializer at >> java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) >> at >> java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280) >> at >> java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1606) >> .. >> >> Here are my pom.xml file contents: >> >> <!-- >> 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>com.harsh.test</groupId> >> <artifactId>harsh-flink-test</artifactId> >> <version>1.0-SNAPSHOT</version> >> <packaging>jar</packaging> >> >> <name>Flink Quickstart Job</name> >> <url>http://www.myorganization.org</url> >> >> <properties> >> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> >> <flink.version>1.13.2</flink.version> >> <java.version>1.8</java.version> >> <hive.version>2.3.6</hive.version> >> <scala.binary.version>2.12</scala.binary.version> >> <maven.compiler.source>${java.version}</maven.compiler.source> >> <maven.compiler.target>${java.version}</maven.compiler.target> >> </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> >> >> <dependencies> >> <!-- Apache Flink dependencies --> >> <!-- These dependencies are provided, because they should not be >> packaged into the JAR file. --> >> <dependency> >> <groupId>org.apache.flink</groupId> >> <artifactId>flink-java</artifactId> >> <version>${flink.version}</version> >> </dependency> >> <dependency> >> <groupId>org.apache.flink</groupId> >> >> <artifactId>flink-streaming-java_${scala.binary.version}</artifactId> >> <version>${flink.version}</version> >> </dependency> >> >> <!-- Add connector dependencies here. They must be in the default >> scope (compile). --> >> >> <!-- Example: >> >> <dependency> >> <groupId>org.apache.flink</groupId> >> >> <artifactId>flink-connector-kafka-0.10_${scala.binary.version}</artifactId> >> <version>${flink.version}</version> >> </dependency> >> --> >> >> <!-- >> https://mvnrepository.com/artifact/org.apache.flink/flink-connector-kafka --> >> <dependency> >> <groupId>org.apache.flink</groupId> >> >> <artifactId>flink-connector-kafka_${scala.binary.version}</artifactId> >> <version>${flink.version}</version> >> </dependency> >> >> <dependency> >> <groupId>org.apache.flink</groupId> >> >> <artifactId>flink-table-api-java-bridge_${scala.binary.version}</artifactId> >> <version>${flink.version}</version> >> </dependency> >> >> <dependency> >> <groupId>org.apache.flink</groupId> >> >> <artifactId>flink-table-planner-blink_${scala.binary.version}</artifactId> >> <version>${flink.version}</version> >> </dependency> >> >> <!-- >> https://mvnrepository.com/artifact/org.apache.flink/flink-table-planner --> >> <dependency> >> <groupId>org.apache.flink</groupId> >> <artifactId>flink-table-planner_2.12</artifactId> >> <version>1.13.2</version> >> </dependency> >> >> >> <!-- Flink Dependency --> >> <dependency> >> <groupId>org.apache.flink</groupId> >> >> <artifactId>flink-connector-hive_${scala.binary.version}</artifactId> >> <version>${flink.version}</version> >> </dependency> >> >> <!-- Hive Dependency --> >> <dependency> >> <groupId>org.apache.hive</groupId> >> <artifactId>hive-exec</artifactId> >> <version>${hive.version}</version> >> </dependency> >> >> <!-- >> https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> >> <dependency> >> <groupId>javax.servlet</groupId> >> <artifactId>javax.servlet-api</artifactId> >> <version>3.1.0</version> >> <scope>provided</scope> >> </dependency> >> >> <!-- >> https://mvnrepository.com/artifact/org.apache.htrace/htrace-core4 --> >> <dependency> >> <groupId>org.apache.htrace</groupId> >> <artifactId>htrace-core4</artifactId> >> <version>4.0.1-incubating</version> >> </dependency> >> >> <!-- >> https://mvnrepository.com/artifact/commons-configuration/commons-configuration >> --> >> <dependency> >> <groupId>commons-configuration</groupId> >> <artifactId>commons-configuration</artifactId> >> <version>1.10</version> >> </dependency> >> >> <!-- >> https://mvnrepository.com/artifact/commons-logging/commons-logging --> >> <dependency> >> <groupId>commons-logging</groupId> >> <artifactId>commons-logging</artifactId> >> <version>1.2</version> >> </dependency> >> >> <!-- >> https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-2 --> >> <dependency> >> <groupId>org.apache.flink</groupId> >> <artifactId>flink-shaded-hadoop-2</artifactId> >> <version>2.8.3-10.0</version> >> </dependency> >> >> >> <!-- >> https://mvnrepository.com/artifact/org.apache.flink/flink-hadoop-compatibility >> --> >> <dependency> >> <groupId>org.apache.flink</groupId> >> <artifactId>flink-hadoop-compatibility_2.12</artifactId> >> <version>1.13.2</version> >> </dependency> >> >> <!-- >> https://mvnrepository.com/artifact/org.apache.flink/flink-hadoop-fs --> >> <dependency> >> <groupId>org.apache.flink</groupId> >> <artifactId>flink-hadoop-fs</artifactId> >> <version>1.13.2</version> >> </dependency> >> >> <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-csv >> --> >> <dependency> >> <groupId>org.apache.flink</groupId> >> <artifactId>flink-csv</artifactId> >> <version>1.13.2</version> >> </dependency> >> >> <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-json >> --> >> <dependency> >> <groupId>org.apache.flink</groupId> >> <artifactId>flink-json</artifactId> >> <version>1.13.2</version> >> </dependency> >> >> <!-- >> https://mvnrepository.com/artifact/org.apache.flink/flink-sql-connector-hive-1.2.2 >> --> >> <dependency> >> <groupId>org.apache.flink</groupId> >> <artifactId>flink-sql-connector-hive-2.3.6_2.12</artifactId> >> <version>1.13.2</version> >> </dependency> >> >> <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-core >> --> >> <dependency> >> <groupId>org.apache.flink</groupId> >> <artifactId>flink-core</artifactId> >> <version>1.13.2</version> >> </dependency> >> >> <!-- >> https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients --> >> <dependency> >> <groupId>org.apache.kafka</groupId> >> <artifactId>kafka-clients</artifactId> >> <version>2.8.0</version> >> </dependency> >> >> <dependency> >> <groupId>org.apache.kafka</groupId> >> <artifactId>kafka_2.12</artifactId> >> <version>2.8.0</version> >> </dependency> >> >> >> <!-- Add logging framework, to produce console output when running >> in the IDE. --> >> <!-- These dependencies are excluded from the application JAR by >> default. --> >> <dependency> >> <groupId>org.slf4j</groupId> >> <artifactId>slf4j-log4j12</artifactId> >> <version>1.7.7</version> >> <scope>runtime</scope> >> </dependency> >> <dependency> >> <groupId>log4j</groupId> >> <artifactId>log4j</artifactId> >> <version>1.2.17</version> >> <scope>runtime</scope> >> </dependency> >> </dependencies> >> >> <build> >> <plugins> >> >> <!-- Java Compiler --> >> <plugin> >> <groupId>org.apache.maven.plugins</groupId> >> <artifactId>maven-compiler-plugin</artifactId> >> <version>3.1</version> >> <configuration> >> <source>${java.version}</source> >> <target>${java.version}</target> >> </configuration> >> </plugin> >> >> <!-- We use the maven-shade plugin to create a fat jar that >> contains all necessary dependencies. --> >> <!-- Change the value of <mainClass>...</mainClass> if your >> program entry point changes. --> >> <plugin> >> <groupId>org.apache.maven.plugins</groupId> >> <artifactId>maven-shade-plugin</artifactId> >> <version>3.0.0</version> >> <executions> >> <!-- Run shade goal on package phase --> >> <execution> >> <phase>package</phase> >> <goals> >> <goal>shade</goal> >> </goals> >> <configuration> >> <artifactSet> >> <excludes> >> >> <exclude>org.apache.flink:force-shading</exclude> >> >> <exclude>com.google.code.findbugs:jsr305</exclude> >> <exclude>org.slf4j:*</exclude> >> <exclude>log4j:*</exclude> >> </excludes> >> </artifactSet> >> <filters> >> <filter> >> <!-- Do not copy the signatures in the >> META-INF folder. >> Otherwise, this might cause >> SecurityExceptions when using the JAR. --> >> <artifact>*:*</artifact> >> <excludes> >> <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.ManifestResourceTransformer"> >> >> <mainClass>com.harsh.test.StreamingJob</mainClass> >> </transformer> >> </transformers> >> </configuration> >> </execution> >> </executions> >> </plugin> >> </plugins> >> >> <pluginManagement> >> <plugins> >> >> <!-- This improves the out-of-the-box experience in Eclipse >> by resolving some warnings. --> >> <plugin> >> <groupId>org.eclipse.m2e</groupId> >> <artifactId>lifecycle-mapping</artifactId> >> <version>1.0.0</version> >> <configuration> >> <lifecycleMappingMetadata> >> <pluginExecutions> >> <pluginExecution> >> <pluginExecutionFilter> >> >> <groupId>org.apache.maven.plugins</groupId> >> >> <artifactId>maven-shade-plugin</artifactId> >> <versionRange>[3.0.0,)</versionRange> >> <goals> >> <goal>shade</goal> >> </goals> >> </pluginExecutionFilter> >> <action> >> <ignore/> >> </action> >> </pluginExecution> >> <pluginExecution> >> <pluginExecutionFilter> >> >> <groupId>org.apache.maven.plugins</groupId> >> >> <artifactId>maven-compiler-plugin</artifactId> >> <versionRange>[3.1,)</versionRange> >> <goals> >> <goal>testCompile</goal> >> <goal>compile</goal> >> </goals> >> </pluginExecutionFilter> >> <action> >> <ignore/> >> </action> >> </pluginExecution> >> </pluginExecutions> >> </lifecycleMappingMetadata> >> </configuration> >> </plugin> >> </plugins> >> </pluginManagement> >> </build> >> >> <!-- This profile helps to make things run out of the box in IntelliJ --> >> <!-- Its adds Flink's core classes to the runtime class path. --> >> <!-- Otherwise they are missing in IntelliJ, because the dependency is >> 'provided' --> >> <profiles> >> <profile> >> <id>add-dependencies-for-IDEA</id> >> >> <activation> >> <property> >> <name>idea.version</name> >> </property> >> </activation> >> >> <dependencies> >> <dependency> >> <groupId>org.apache.flink</groupId> >> <artifactId>flink-java</artifactId> >> <version>${flink.version}</version> >> <scope>compile</scope> >> </dependency> >> <dependency> >> <groupId>org.apache.flink</groupId> >> >> <artifactId>flink-streaming-java_${scala.binary.version}</artifactId> >> <version>${flink.version}</version> >> <scope>compile</scope> >> </dependency> >> </dependencies> >> </profile> >> </profiles> >> >> </project> >> >> >> Please help me resolve the issue. >> >> Thanks >> >> >> >> -- Thanks and Regards, Harshvardhan Data Platform
