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 < harshvardhan.shi...@oyorooms.com> 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 > > > >