Eclipse 连接Hive
Hive本质上不是数据库,数据内容保存在HDFS,元数据和数据映射保存在mysql。
eclipse连接hive时,需要将hive启动为服务,hive自身提供了服务启动方式
一、Hive服务启动方式
hive --service hiveserver2
hive服务绑定的10000端口号
查看10000端口号的绑定状态
sudo netstat -nplt | grep 10000
如果10000端口号没有开启,那么连接hive时会出现连接拒绝的异常
二、本地连接hive服务
1) 执行beeline
beeline
2) 连接hive服务
!connect jdbd:hive2://localhost:10000/default
此时连接的default数据库,默认用户名和密码都为空
三、eclipse连接hive
注:连接hive的用户名和所查询表所用的用户名相一致,否则在sql语句中调用hive的函数会出现sql语句执行异常(是否真解,待进一步确认)
package com.whu.hivetest; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class HiveTest { private static final String URL = "jdbc:hive2://localhost:10000/default"; public static void main(String[] args) throws Exception{ Class.forName("org.apache.hive.jdbc.HiveDriver"); Connection conn = DriverManager.getConnection(URL, "whu", ""); //这里的用户名使用和数据表在hdfs上的文件拥有者一致,以便在sql语句中调用hive的函数不会出现sql语句异常 System.out.println("链接成功"); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(" select count(*) from t1 "); if(rs.next()){ System.out.println(rs.getInt(1)); } // while(rs.next()){ // System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+ rs.getString(3)); // } } }