java 操做hive和impalajava
第一是maven加入jdbc库sql
<dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>1.1.0-cdh5.8.2</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.3</version> </dependency>
注意:apache
hive-jdbc版本最好要跟impala版本对应上,不然会出现一些问题,好比我执行测试过程当中碰到程序一直在运行,不出结果maven
cloudera repositoryoop
<repositories> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> </repository> </repositories>
测试代码:测试
package org.apache.zeppelin.impala; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import java.sql.*; /** * Created by moonx on 2016/9/29. */ public class ImpalaTest { private static String driverName = "org.apache.hive.jdbc.HiveDriver"; @Test public void testHive() throws SQLException,ClassNotFoundException { Class.forName(driverName); Connection con = DriverManager.getConnection( "jdbc:hive2://10.0.71.31:10000", "hive", ""); Statement stmt = con.createStatement(); String sql = "select * from test" ; ResultSet res = stmt.executeQuery(sql); while (res.next()) { System.out.println(String.valueOf(res.getString(1)) + "\t" + res.getInt(2)); } } @Test public void testImpala() throws SQLException,ClassNotFoundException{ Class.forName(driverName); Connection con = DriverManager.getConnection( "jdbc:hive2://10.0.71.31:21050/;auth=noSasl", "hive", ""); Statement stmt = con.createStatement(); String sql = "select * from test" ; ResultSet res = stmt.executeQuery(sql); while (res.next()) { System.out.println(String.valueOf(res.getString(1)) + "\t" + res.getInt(2)); } } }
hive 和impala如何区分:url
经过比较咱们能够看到代码都是同样的,就是端口号不同code
hive用的10000,impala用的21050xml
就是这些区别hadoop