1.项目目录
2.启动Hadoop
master:
slave0:
slave1:
3.开启hive
进入hive目录 ./app/install/apache-hive-2.1.0-bin/bin/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测试结果