java操做hive和impala

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

相關文章
相關標籤/搜索