通过远程jdbc方式连接到hive数据仓库

1.启动hiveserver2服务器,监听端口10000

$>hive --service hiveserver2 &

netstat -anop | grep 10000

 

2.通过beeline命令行连接到hiveserver2

$>beeline //进入beeline命令行(hive --service beeline)

$beeline>!help //查看帮助

$beeline>!quit //退出

$beeline>!connect jdbc:hive2://localhost:10000/db2//连接到hibve数据

此时,会遇到以下问题:


解决方案:在hadoop>etc>hadoop>core-site.xml 中添加如下部分,重启服务即可:


  hadoop.proxyuser.centos.hosts
  *
 

 
  hadoop.proxyuser.centos.groups
  *

遇到以下问题,请参考下面的解决方法


解决方法:

hadoop dfs -chmod -R 777 /tmp

 

$beeline>show databases ;

$beeline>use mydb2 ;

$beeline>show tables; //显式表

3.、 使用 Hive-jdbc 驱动程序采用 jdbc 方式访问远程数据仓库

1.创建java模块
2.引入maven
3.添加hive-jdbc依赖


org.apache.hive
hive-jdbc
2.1.0



4.App

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

		/**
		 * 使用jdbc方式连接到hive数据仓库,数据仓库需要开启hiveserver2服务。
		 */
		public class App {
			public static void main(String[] args) throws  Exception {
				Class.forName("org.apache.hive.jdbc.HiveDriver");
				Connection conn = DriverManager.getConnection("jdbc:hive2://192.168.52.201:10000/db2");
				Statement st = conn.createStatement();
				ResultSet rs = st.executeQuery("select id , name ,age from t");
				while(rs.next()){
					System.out.println(rs.getInt(1) + "," + rs.getString(2)) ;
				}
				rs.close();
				st.close();
				conn.close();
			}
		}


你可能感兴趣的:(Hive实战)