Java操作Hive中的常见问题

本文解决HiveServer2使用过程中遇到的两个常见问题:一是通过Beeline连接时出现用户冒充权限错误,二是启动服务时提示未找到log4j2配置文件。针对这两个问题提供详细的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、启动好HiveServer后运行:
beeline -u jdbc:hive2://localhost:10000 -n root 连接server时:

java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate hive
    at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:591)
    at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:526)
    at org.apache.hive.service.cli.session.HiveSessionImpl.open(HiveSessionImpl.java:168)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:78)
    ... 21 more

解决办法:
原因是User: root is not allowed to impersonate hive中用户名报错,则需要修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项:

<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

二、启动服务时,错误信息中出现:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

解决办法:
检查log4j2文件名,将hive-log4j2.properties文件名修改为log4j2.properties。


未完待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值