hive编程-JDBC方式连接hive

博主使用JDBC方式进行hive编程,hive环境为hive2.2.0,需要开启hiveserver模式,自带的server模式是hiveserver2,启动命令如下:

(1)hive --service hiveserver2  (这种方式会使得hiveserver一直占用命令行,需要用Ctrl+C强制中断命令)

(2)hive --service hiveserver2 &  (这个命令会使得hiveserver以后台进程的方式运行(敲个回车就可以回到linux命令行),通过kill -9 进程号实现关闭,例如hiveserver2的进程号为30314,则关闭命令为 kill -9 30314)

JDBC编程:

maven管理项目,需要导入的jar包如下:

hive编程-JDBC方式连接hive_第1张图片

JDBC代码:

hive编程-JDBC方式连接hive_第2张图片

其中,user和password为hive中hive-site.xml中数据库的用户民和密码

此时运行可能会出现如下问题:Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: mwq is not allowed to impersonate root (state=08S01,code=0)

此时因为当前hadoop用户的权限不足,需要对hadoop的core-site.xml进行配置

解决方式:在hadoop的配置文件core-site.xml增加如下配置,重启hdfs,其中“xxx”是连接hadoop的用户,将“xxx”替换成自己的用户名即可,在各节点上都需要进行此配置

<property>  

     <name>hadoop.proxyuser.xxx.hostsname>  

     <value>*value>  

property>  

<property>  

     <name>hadoop.proxyuser.xxx.groupsname>  

     <value>*value>  

property>  

在此例中,xxx就是mwq

你可能感兴趣的:(hive)