Hi Sunny,
As stated by Fabian try to see whether including the postgres classes in
the shaded jar solves the problem. If it doesn't, you're probably hitting
the same problem i had with an older version of Flink (
https://issues.apache.org/jira/plugins/servlet/mobile#issue/FLINK-4061) and
this you have to copy the postgres jar in the Flink lib directory.

Best,
Flavio

On 12 Oct 2016 23:36, "Fabian Hueske" <fhue...@gmail.com> wrote:

> Hi Sunny,
>
> please avoid crossposting to all mailing lists.
> The dev@f.a.o list is for issues related to the development of Flink not
> the development of Flink applications.
>
> The error message is actually quite descriptive. Flink does not find the
> JDBC driver class.
> You need to add it to the classpath for example by adding the
> corresponding Maven dependency to your pom file.
>
> Fabian
>
>
> 2016-10-12 23:18 GMT+02:00 sunny patel <sunnyle...@gmail.com>:
>
>>
>> Hi Guys,
>>
>> I am facing JDBC error, could you please some one advise me on this error?
>>
>> $ java -version
>>
>> java version "1.8.0_102"
>>
>> Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
>>
>> Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
>>
>> $ scala -version
>>
>> Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL
>>
>>
>> =============== Scala Code
>>
>> import org.apache.flink.api.common.typeinfo.TypeInformation
>> import org.apache.flink.api.java.io.jdbc.JDBCInputFormat
>> import org.apache.flink.api.scala._
>> import org.apache.flink.api.table.typeutils.RowTypeInfo
>>
>> object WordCount {
>>   def main(args: Array[String]) {
>>
>>     val PATH = getClass.getResource("").getPath
>>
>>     // set up the execution environment
>>     val env = ExecutionEnvironment.getExecutionEnvironment
>>
>>     // Read data from JDBC (Kylin in our case)
>>     val stringColum: TypeInformation[Int] = createTypeInformation[Int]
>>     val DB_ROWTYPE = new RowTypeInfo(Seq(stringColum))
>>
>>     val inputFormat = JDBCInputFormat.buildJDBCInputFormat()
>>       .setDrivername("org.postgresql.jdbc.Driver")
>>       .setDBUrl("jdbc:postgresql://localhost:5432/mydb")
>>       .setUsername("MI")
>>       .setPassword("MI")
>>       .setQuery("select * FROM identity")
>>       .setRowTypeInfo(DB_ROWTYPE)
>>       .finish()
>>
>>     val dataset =env.createInput(inputFormat)
>>     dataset.print()
>>
>>     println(PATH)
>>   }
>> }
>>
>> ==========================================================================
>>
>> ==========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>
>>       <artifactId>flink-parent</artifactId>
>>       <groupId>org.apache.flink</groupId>
>>       <version>1.2-SNAPSHOT</version>
>>    </parent>
>>
>>    <groupId>org.apache.flink.quickstart</groupId>
>>    <artifactId>flink-scala-project</artifactId>
>>    <version>0.1</version>
>>    <packaging>jar</packaging>
>>
>>    <name>Flink Quickstart Job</name>
>>    <url>http://www.myorganization.org</url>
>>
>>    <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>
>>          </snapshots>
>>       </repository>
>>    </repositories>
>>
>>    <properties>
>>       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>>       <flink.version>1.1.2</flink.version>
>>    </properties>
>>
>>    <!--
>>
>>        Execute "mvn clean package -Pbuild-jar"
>>        to build a jar file out of this project!
>>
>>        How to use the Flink Quickstart pom:
>>
>>        a) Adding new dependencies:
>>           You can add dependencies to the list below.
>>           Please check if the maven-shade-plugin below is filtering out your 
>> dependency
>>           and remove the exclude from there.
>>
>>        b) Build a jar for running on the cluster:
>>           There are two options for creating a jar from this project
>>
>>           b.1) "mvn clean package" -> this will create a fat jar which 
>> contains all
>>                 dependencies necessary for running the jar created by this 
>> pom in a cluster.
>>                 The "maven-shade-plugin" excludes everything that is 
>> provided on a running Flink cluster.
>>
>>           b.2) "mvn clean package -Pbuild-jar" -> This will also create a 
>> fat-jar, but with much
>>                 nicer dependency exclusion handling. This approach is 
>> preferred and leads to
>>                 much cleaner jar files.
>>     -->
>>
>>    <dependencies>
>>       <dependency>
>>          <groupId>org.apache.flink</groupId>
>>          <artifactId>flink-jdbc</artifactId>
>>          <version>${flink.version}</version>
>>       </dependency>
>>       <dependency>
>>          <groupId>org.apache.flink</groupId>
>>          <artifactId>flink-table_2.11</artifactId>
>>          <version>${flink.version}</version>
>>       </dependency>
>>       <dependency>
>>          <groupId>org.apache.flink</groupId>
>>          <artifactId>flink-scala_2.11</artifactId>
>>          <version>${flink.version}</version>
>>       </dependency>
>>       <dependency>
>>          <groupId>org.apache.flink</groupId>
>>          <artifactId>flink-streaming-scala_2.11</artifactId>
>>          <version>${flink.version}</version>
>>       </dependency>
>>       <dependency>
>>          <groupId>org.apache.flink</groupId>
>>          <artifactId>flink-clients_2.11</artifactId>
>>          <version>${flink.version}</version>
>>       </dependency>
>>    </dependencies>
>>
>>    <profiles>
>>       <profile>
>>          <!-- Profile for packaging correct JAR files -->
>>          <id>build-jar</id>
>>          <activation>
>>          </activation>
>>          <dependencies>
>>             <dependency>
>>                <groupId>org.apache.flink</groupId>
>>                <artifactId>flink-scala_2.11</artifactId>
>>                <version>${flink.version}</version>
>>                <scope>provided</scope>
>>             </dependency>
>>             <dependency>
>>                <groupId>org.apache.flink</groupId>
>>                <artifactId>flink-streaming-scala_2.11</artifactId>
>>                <version>${flink.version}</version>
>>                <scope>provided</scope>
>>             </dependency>
>>             <dependency>
>>                <groupId>org.apache.flink</groupId>
>>                <artifactId>flink-clients_2.11</artifactId>
>>                <version>${flink.version}</version>
>>                <scope>provided</scope>
>>             </dependency>
>>          </dependencies>
>>
>>          <build>
>>             <plugins>
>>                <!-- disable the exclusion rules -->
>>                <plugin>
>>                   <groupId>org.apache.maven.plugins</groupId>
>>                   <artifactId>maven-shade-plugin</artifactId>
>>                   <version>2.4.1</version>
>>                   <executions>
>>                      <execution>
>>                         <phase>package</phase>
>>                         <goals>
>>                            <goal>shade</goal>
>>                         </goals>
>>                         <configuration>
>>                            <artifactSet>
>>                               <excludes combine.self="override"></excludes>
>>                            </artifactSet>
>>                         </configuration>
>>                      </execution>
>>                   </executions>
>>                </plugin>
>>             </plugins>
>>          </build>
>>       </profile>
>>    </profiles>
>>
>>    <!-- We use the maven-assembly plugin to create a fat jar that contains 
>> all dependencies
>>        except flink and its transitive dependencies. The resulting fat-jar 
>> can be executed
>>        on a cluster. Change the value of Program-Class if your program entry 
>> point changes. -->
>>    <build>
>>       <plugins>
>>          <!-- We use the maven-shade plugin to create a fat jar that 
>> contains all dependencies
>>             except flink and it's transitive dependencies. The resulting 
>> fat-jar can be executed
>>             on a cluster. Change the value of Program-Class if your program 
>> entry point changes. -->
>>          <plugin>
>>             <groupId>org.apache.maven.plugins</groupId>
>>             <artifactId>maven-shade-plugin</artifactId>
>>             <version>2.4.1</version>
>>             <executions>
>>                <!-- Run shade goal on package phase -->
>>                <execution>
>>                   <phase>package</phase>
>>                   <goals>
>>                      <goal>shade</goal>
>>                   </goals>
>>                   <configuration>
>>                      <artifactSet>
>>                         <excludes>
>>                            <!-- This list contains all dependencies of 
>> flink-dist
>>                                     Everything else will be packaged into 
>> the fat-jar
>>                                     -->
>>                            
>> <exclude>org.apache.flink:flink-annotations</exclude>
>>                            
>> <exclude>org.apache.flink:flink-shaded-hadoop1_2.11</exclude>
>>                            
>> <exclude>org.apache.flink:flink-shaded-hadoop2</exclude>
>>                            
>> <exclude>org.apache.flink:flink-shaded-curator-recipes</exclude>
>>                            <exclude>org.apache.flink:flink-core</exclude>
>>                            <exclude>org.apache.flink:flink-java</exclude>
>>                            
>> <exclude>org.apache.flink:flink-scala_2.11</exclude>
>>                            
>> <exclude>org.apache.flink:flink-runtime_2.11</exclude>
>>                            
>> <exclude>org.apache.flink:flink-optimizer_2.11</exclude>
>>                            
>> <exclude>org.apache.flink:flink-clients_2.11</exclude>
>>                            
>> <exclude>org.apache.flink:flink-avro_2.11</exclude>
>>                            
>> <exclude>org.apache.flink:flink-examples-batch_2.11</exclude>
>>                            
>> <exclude>org.apache.flink:flink-examples-streaming_2.11</exclude>
>>                            
>> <exclude>org.apache.flink:flink-streaming-java_2.11</exclude>
>>
>>                            <!-- Also exclude very big transitive 
>> dependencies of Flink
>>
>>                                     WARNING: You have to remove these 
>> excludes if your code relies on other
>>                                     versions of these dependencies.
>>
>>                                     -->
>>
>>                            <exclude>org.scala-lang:scala-library</exclude>
>>                            <exclude>org.scala-lang:scala-compiler</exclude>
>>                            <exclude>org.scala-lang:scala-reflect</exclude>
>>                            <exclude>com.typesafe.akka:akka-actor_*</exclude>
>>                            <exclude>com.typesafe.akka:akka-remote_*</exclude>
>>                            <exclude>com.typesafe.akka:akka-slf4j_*</exclude>
>>                            <exclude>io.netty:netty-all</exclude>
>>                            <exclude>io.netty:netty</exclude>
>>                            
>> <exclude>commons-fileupload:commons-fileupload</exclude>
>>                            <exclude>org.apache.avro:avro</exclude>
>>                            
>> <exclude>commons-collections:commons-collections</exclude>
>>                            
>> <exclude>com.thoughtworks.paranamer:paranamer</exclude>
>>                            <exclude>org.xerial.snappy:snappy-java</exclude>
>>                            
>> <exclude>org.apache.commons:commons-compress</exclude>
>>                            <exclude>org.tukaani:xz</exclude>
>>                            <exclude>com.esotericsoftware.kryo:kryo</exclude>
>>                            
>> <exclude>com.esotericsoftware.minlog:minlog</exclude>
>>                            <exclude>org.objenesis:objenesis</exclude>
>>                            <exclude>com.twitter:chill_*</exclude>
>>                            <exclude>com.twitter:chill-java</exclude>
>>                            <exclude>commons-lang:commons-lang</exclude>
>>                            <exclude>junit:junit</exclude>
>>                            
>> <exclude>org.apache.commons:commons-lang3</exclude>
>>                            <exclude>org.slf4j:slf4j-api</exclude>
>>                            <exclude>org.slf4j:slf4j-log4j12</exclude>
>>                            <exclude>log4j:log4j</exclude>
>>                            <exclude>org.apache.commons:commons-math</exclude>
>>                            
>> <exclude>org.apache.sling:org.apache.sling.commons.json</exclude>
>>                            <exclude>commons-logging:commons-logging</exclude>
>>                            <exclude>commons-codec:commons-codec</exclude>
>>                            
>> <exclude>com.fasterxml.jackson.core:jackson-core</exclude>
>>                            
>> <exclude>com.fasterxml.jackson.core:jackson-databind</exclude>
>>                            
>> <exclude>com.fasterxml.jackson.core:jackson-annotations</exclude>
>>                            <exclude>stax:stax-api</exclude>
>>                            <exclude>com.typesafe:config</exclude>
>>                            
>> <exclude>org.uncommons.maths:uncommons-maths</exclude>
>>                            <exclude>com.github.scopt:scopt_*</exclude>
>>                            <exclude>commons-io:commons-io</exclude>
>>                            <exclude>commons-cli:commons-cli</exclude>
>>                         </excludes>
>>                      </artifactSet>
>>                      <filters>
>>                         <filter>
>>                            <artifact>org.apache.flink:*</artifact>
>>                            <excludes>
>>                               <!-- exclude shaded google but include shaded 
>> curator -->
>>                               
>> <exclude>org/apache/flink/shaded/com/**</exclude>
>>                               <exclude>web-docs/**</exclude>
>>                            </excludes>
>>                         </filter>
>>                         <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>
>>                      <!-- If you want to use ./bin/flink run <quickstart 
>> jar> uncomment the following lines.
>>                             This will add a Main-Class entry to the manifest 
>> file -->
>>                      <!--
>>                             <transformers>
>>                                <transformer 
>> implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
>>                                   
>> <mainClass>org.apache.flink.quickstart.StreamingJob</mainClass>
>>                                </transformer>
>>                             </transformers>
>>                              -->
>>                      
>> <createDependencyReducedPom>false</createDependencyReducedPom>
>>                   </configuration>
>>                </execution>
>>             </executions>
>>          </plugin>
>>
>>          <plugin>
>>             <groupId>org.apache.maven.plugins</groupId>
>>             <artifactId>maven-compiler-plugin</artifactId>
>>             <version>3.1</version>
>>             <configuration>
>>                <source>1.7</source>
>>                <target>1.7</target>
>>             </configuration>
>>          </plugin>
>>          <plugin>
>>             <groupId>net.alchim31.maven</groupId>
>>             <artifactId>scala-maven-plugin</artifactId>
>>             <version>3.1.4</version>
>>             <executions>
>>                <execution>
>>                   <goals>
>>                      <goal>compile</goal>
>>                      <goal>testCompile</goal>
>>                   </goals>
>>                </execution>
>>             </executions>
>>          </plugin>
>>
>>          <!-- Eclipse Integration -->
>>          <plugin>
>>             <groupId>org.apache.maven.plugins</groupId>
>>             <artifactId>maven-eclipse-plugin</artifactId>
>>             <version>2.8</version>
>>             <configuration>
>>                <downloadSources>true</downloadSources>
>>                <projectnatures>
>>                   
>> <projectnature>org.scala-ide.sdt.core.scalanature</projectnature>
>>                   
>> <projectnature>org.eclipse.jdt.core.javanature</projectnature>
>>                </projectnatures>
>>                <buildcommands>
>>                   <buildcommand>
>>
>> ...

Reply via email to