hadoop学习之HIVE(3.2):hadoop2.7.2下配置hiveserver2启动远程连接
2016-11-10 10:43
573 查看
./hive只是启动本地客户端,往往用来测试,我们可以启动hive server2服务器用于远程连接,方便开发。
前提是配置好hadoop和hive
1,开启hive server服务:bin/hiveserver2
可查看服务是否开启:netstat -nplt | grep 10000
2,新开一个窗口,启动客户端,测试能否连接服务器:
输入用户名,hive默认用户是root,不过如果你是用其他的用户创建的hadoop和hive,就使用你的用户名,密码无,直接回车。
若出现如下信息,说明连接成功:
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://localhost:10000>
3,连接成功后,就可以命令行操作,也可以像第4步一样远程连接后操作。
4,现在可以用eclipse连接hiveserver2写代码了:
a,新建java project,导入jar包:Project->Properties->Java Build Path->Libraries->Add External JARs,
分别找到并导入:hive\lib目录下的所有jar包;hadoop\share\hadoop\common\下的3个jar包;hadoop\share\hadoop\common\lib\下的以“slf4j-”开头的2个jar包。
b,新建java文件,内容如下:
这段代码连接hiveserver2执行hiveql语句,转化为mr程序执行并返回执行结果。
可能会出现错误:
(1):当执行!connect jdbc:hive2://localhost:10000时,出现错误:
Error: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: jimmyhadoop is not allowed to impersonate root (state=,code=0)
解决办法:终止hadoop,修改etc/hadoop/core-site.xml,添加两项:
其中的username改成你hadoop master主机的用户名,保存,重启hadoop,重新连接hive。
(2):hive2.X已经没有timeout中5000L的错误了,1.x中有的话就把L删掉。
前提是配置好hadoop和hive
1,开启hive server服务:bin/hiveserver2
可查看服务是否开启:netstat -nplt | grep 10000
2,新开一个窗口,启动客户端,测试能否连接服务器:
$ bin/beeline beeline> !connect jdbc:hive2://localhost:10000
输入用户名,hive默认用户是root,不过如果你是用其他的用户创建的hadoop和hive,就使用你的用户名,密码无,直接回车。
若出现如下信息,说明连接成功:
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://localhost:10000>
3,连接成功后,就可以命令行操作,也可以像第4步一样远程连接后操作。
4,现在可以用eclipse连接hiveserver2写代码了:
a,新建java project,导入jar包:Project->Properties->Java Build Path->Libraries->Add External JARs,
分别找到并导入:hive\lib目录下的所有jar包;hadoop\share\hadoop\common\下的3个jar包;hadoop\share\hadoop\common\lib\下的以“slf4j-”开头的2个jar包。
b,新建java文件,内容如下:
package com.xxx.hive; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class ConnectTest { public static void main(String[] args) throws Exception { Class.forName("org.apache.hive.jdbc.HiveDriver"); Connection conn = DriverManager.getConnection ("jdbc:hive2://localhost:10000/default", "你的用户名", ""); try { Statement stat = conn.createStatement(); ResultSet ret = stat.executeQuery("select count(*) from stu"); while(ret.next()) { System.out.println(ret.getInt(1)); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { conn.close(); } } }
这段代码连接hiveserver2执行hiveql语句,转化为mr程序执行并返回执行结果。
可能会出现错误:
(1):当执行!connect jdbc:hive2://localhost:10000时,出现错误:
Error: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: jimmyhadoop is not allowed to impersonate root (state=,code=0)
解决办法:终止hadoop,修改etc/hadoop/core-site.xml,添加两项:
<property> <name>hadoop.proxyuser.username.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.username.groups</name> <value>*</value> </property>
其中的username改成你hadoop master主机的用户名,保存,重启hadoop,重新连接hive。
(2):hive2.X已经没有timeout中5000L的错误了,1.x中有的话就把L删掉。
相关文章推荐
- Hive学习之HiveServer2服务端配置与启动,允许远程连接
- Hive学习之HiveServer2服务端配置与启动
- Hive学习之HiveServer2服务端配置与启动
- Hive学习之HiveServer2服务端配置与启动
- wampserver中的phpmyadmin 连接远程MySQL数据库配置
- hadoop集群配置之hive1.2.0安装部署(远程mysql)
- Hadoop学习--Hive安装与配置
- HSQLDB学习心得(1)-关于SERVER模式下多个数据库的启动问题与数据库连接
- 【Linux学习】配置环境:实现【VirtualBox + ubuntu】+【开启ssh服务】+【putty远程连接到虚拟机】
- Hadoop学习之第三章节:Myeclipse连接Hadoop配置安装
- Hadoop学习之配置Eclipse远程调试Hadoop
- 配置windows下远程连接hadoop的问题
- Linux学习-02-远程连接SSH工具及密钥登录配置
- 解决hive客户端无法连接远程hive server问题
- Hadoop学习之第七章节:Hive安装配置
- Hive1.2.1 启动报错 ClassNotFoundException: org.apache.hadoop.hive.service.HiveServer
- SAN BOOT-用IBM BladeCenter HS20刀片服务器连接IBM FastT 700存储远程启动Windows 2003配置实例
- WIN 2003 Server配置SQL Server 2005远程连接体验
- Hadoop学习之配置Eclipse远程调试Hadoop
- eclipse远程连接hadoop集群配置(windows及linux下)