package com.chengshu.impala; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ClouderaImpalaJdbcExample { private static final String SQL_STATEMENT = "select count(*) as cnt from web_logs "; //private static final String SQL_STATEMENT = "DESCRIBE test.t_a"; // set the impalad host private static final String IMPALAD_HOST = "192.168.202.31"; // port 21050 is the default impalad JDBC port private static final String IMPALAD_JDBC_PORT = "25003"; public static final String UTF_8 = "UTF-8"; private static final String CONNECTION_URL_PROPERTY = "connection.url"; private static final String JDBC_DRIVER_NAME_PROPERTY = "jdbc.driver.class.name"; private static String connectionUrl = "jdbc:hive2://" + IMPALAD_HOST + ':' + IMPALAD_JDBC_PORT + "/default;auth=noSasl"; private static String jdbcDriverName = "org.apache.hive.jdbc.HiveDriver"; public static void main(String[] args) throws IOException { // if (args.length != 1) { // System.out.println("Syntax: ClouderaImpalaJdbcExample \"<SQL_query>\""); // System.exit(1); // } String sqlStatement = SQL_STATEMENT; System.out.println("\n============================================="); System.out.println("Cloudera Impala JDBC Example"); System.out.println("Using Connection URL: " + connectionUrl); System.out.println("Running Query: " + sqlStatement); // loadConfiguration(); Connection con = null; try { Class.forName(jdbcDriverName); con = DriverManager.getConnection(connectionUrl); Statement stmt = con.createStatement(); // stmt.execute("use default"); ResultSet rs = stmt.executeQuery(sqlStatement); System.out.println("\n== Begin Query Results ======================"); // print the results to the console while (rs.next()) { // the example query returns one String column System.out.println(rs.getString(1)); } rs = stmt.executeQuery(sqlStatement); while (rs.next()) { // the example query returns one String column System.out.println(rs.getString(1)); } System.out.println("== End Query Results =======================\n\n"); } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch (Exception e) { // swallow } } } }
ClouderaImaplaJdbcExample.java
package com.chengshu.impala;
import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.datasource.SingleConnectionDataSource;
public class SpringJdbcImpala { public static void main(String args[]) throws Exception { SingleConnectionDataSource ds = new SingleConnectionDataSource(); ds.setDriverClassName("org.apache.hive.jdbc.HiveDriver"); ds.setUrl("jdbc:hive2://192.168.202.31:25003/default;auth=noSasl"); ds.setConnectionProperties(new Properties()); // ds.setUsername("sa"); // ds.setPassword(""); // // ds.setDriverClassName("com.mysql.jdbc.Driver"); // ds.setUrl("jdbc:mysql://localhost:3306/spring"); // ds.setUsername("spring"); // ds.setPassword("t1cket"); // // ds.setDriverClassName("oracle.jdbc.driver.OracleDriver"); // ds.setUrl("jdbc:oracle:thin:@fiji:1521:my10g"); // ds.setUsername("spring"); // ds.setPassword("t1cket"); JdbcTemplate impalaTemplate = new JdbcTemplate(ds); impalaTemplate.setIgnoreWarnings(false); impalaTemplate.execute("CREATE TABLE IF NOT EXISTS tmp_segment_tb (id STRING) STORED AS PARQUET"); impalaTemplate.execute("INSERT into tmp_segment_tb select 'String1' "); int count = impalaTemplate.queryForInt("select count(*) from tmp_segment_tb where id = 'String1' "); System.out.println(count); // SqlRowSet res = impalaTemplate.queryForRowSet("select id from tmp_segment_tb"); // impalaTemplate.queryForObject("select * from web_logs", new RowMapper<ResultSet>(){ // // public ResultSet mapRow(ResultSet rs, int rowNum) // throws SQLException { // System.out.println("--------" + rs.getString("id")); // while(rs.next()){ // System.out.println("--------" + rs.getString("id")); // } // return rs; // } // // }); ds.destroy(); } }
SpringJdbcImpala.java
<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.chengshu</groupId> <artifactId>impala</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>impala</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.0.3.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <!-- <repositories> <repository> <id>cdh.repo</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos</url> <name>Cloudera Repositories</name> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>cdh.snapshots.repo</id> <url>https://repository.cloudera.com/artifactory/libs-snapshot-local</url> <name>Cloudera Snapshots Repository</name> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>false</enabled> </releases> </repository> <repository> <id>central</id> <url>http://repo1.maven.org/maven2/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> --> </project>
pom.xml