hive使用beeline连接遇到的问题

hiveserver2未启动

如果hiveserver2未启动就直接使用beeline连接,会出现如下错误:

Error: Could not open client transport with JDBC Uri: jdbc:hive2://master:10000/default: java.net.ConnectException: Connection refused (Connection refused) (state=08S01,code=0)

这时候,只要启动hiveserver2就行

hive --service hiveserver2 &

杀死hiveserver2进程

由于hiveserver2的端口使用的是10000,因此查看占用这个端口的进程:

ss -lnp|grep 10000

得到的进程如下
在这里插入图片描述
直接kill -9就行

kill -9 10564

提示报错’serverProtocolVersion’ is unset

Required field 'serverProtocolVersion' is unset!

hive使用beeline连接遇到的问题_第1张图片
这个是因为core-site.xml 文件中没有设置相关的代理用户组以及hosts,修改hadoop安装目录/etc/hadoop目录下面的core-site.xml,添加如下设置:


      hadoop.proxyuser.hadoop-twq-fire.groups
      *
      
 
 
 
      hadoop.proxyuser.hadoop-twq-fire.hosts
      *
      The superuser can connect only from host1 and host2 to impersonate a user
  

基本意思就是hadoop-twq-fire组可以代理其他所有用户(第一个表示),而且是在所有的hosts上都可以代理(第二个表示)。注意要将上面的hadoop-twq-fire替换成自己的登陆用户。修改完core-site.xml不会立刻生效,需要执行下面命令来刷新用户组这样的元数据信息:

hdfs dfsadmin -refreshSuperUserGroupsConfiguration
yarn rmadmin -refreshSuperUserGroupsConfiguration

在这里插入图片描述

你可能感兴趣的:(大数据,hive)