日期:2014-05-16 浏览次数:20453 次
1,使用Jdbc方式链接hive,首先需要启动hive的Thrift Server,否则会导致错误
hive --service hiveserver 是两”-“,
Could not establish connection to localhost:10000/default: java.net.ConnectException: Connection refused
2,简单的Java代码实现;
----通过Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");加载hive驱动
----通过Connection conn = DriverManager.getConnection("jdbc:hive://localhost:10000/default","","");建立与数据库的连接
eg:
package hive.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class HiveJdbcDriver {
public static void main(String[] args) throws Exception {
Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
Connection conn = DriverManager.getConnection("jdbc:hive://localhost:1000/default","","");
Statement stmt = conn.createStatement();
String tablename = "u_data_new";
String quary_sql = "select weekday,count(*) from " + tablename + " group by weekday";
ResultSet rs = stmt.executeQuery(quary_sql);
while(rs.next()){
System.out.println("weekday: "+rs.getInt(1)+"count: "+rs.getInt(2));
}
}
}
result:
weekday: 2 count: 13579
weekday: 3 count: 14430
weekday: 4 count: 15114
weekday: 5 count: 14743
weekday: 6 count: 18229
weekday: 7 count: 11651
hive执行结果:
hive> select weekday,count(*) from u_data_new group by weekday;