1.项目目录

Eclipse JDBC远程连接Hive

2.启动Hadoop

Eclipse JDBC远程连接Hive

   master:

   Eclipse JDBC远程连接Hive

  slave0:

  Eclipse JDBC远程连接Hive

  slave1:

  Eclipse JDBC远程连接Hive

  3.开启hive

     进入hive目录  ./app/install/apache-hive-2.1.0-bin/bin/hive

   Eclipse JDBC远程连接Hive

4.jdbc连接Hive

package com.java.hadoop.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.hadoop.hive.ql.parse.HiveParser.resource_return;
import org.apache.log4j.Logger;

public class HadoopTest {
//     private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";
     //hive2 连接驱动
     private static String driverName = "org.apache.hive.jdbc.HiveDriver";
     private static String username = "root";
     private static String password = "root";
     //默认数据库端口为10000
     private static String url = "jdbc:hive2://192.168.28.129:10000/hive_db_test"; 
     private static final Logger log = Logger.getLogger(HadoopTest.class); 
     private static ResultSet res = null;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
          try {
            Class.forName(driverName); // 注册JDBC驱动
              //连接可以不指定用户名密码
              Connection conn = DriverManager.getConnection(url, "", "");
              //执行sql
              Statement st = conn.createStatement();
              String sql = "select * from t_cash_tradecount_mon_copy where p_merno='p_version02'";
              res = st.executeQuery(sql);
              while (res.next()) {
               System.out.println(res.getString(1) + "||" 
                           + res.getString(2) + "||" 
                           +res.getString(3) + "||" 
                           + res.getString(4) + "||" 
                           + res.getString(5)+ "||" 
                           +res.getString(6));
            }      
              conn.close();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
        
        }
    }

}
 

5.运行出现的问题

log4j:WARN No appenders could be found for logger (org.apache.hive.jdbc.Utils).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://192.168.28.129:10000/hive_db_test: java.net.ConnectException: Connection refused: connect
    at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:231)
    at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:176)
    at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
    at java.sql.DriverManager.getConnection(DriverManager.java:579)
    at java.sql.DriverManager.getConnection(DriverManager.java:221)
    at com.java.hadoop.test.HadoopTest.main(HadoopTest.java:28)
Caused by: org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused: connect
    at org.apache.thrift.transport.TSocket.open(TSocket.java:187)
    at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:266)
    at org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:37)
    at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:204)

  ..............

解决:

开启 hive2
nohup hive --service hiveserver2 &

6测试结果

Eclipse JDBC远程连接Hive

Eclipse JDBC远程连接Hive

 

相关文章: