不允许用户模拟匿名(state = 08S01,code = 0)org.apache.hadoop.security.authorize.AuthorizationException

时间:2018-10-25 17:01:24

标签: hadoop hive beeline

当我尝试使用hiverserver2启动Hive时,出现以下错误。

 library(dplyr)
 agg_data = ZNH2 %>%
   mutate(Type = `Sample type`, value = as.numeric(value)) %>% 
   group_by(Date2, Type) %>%
   summarize(mean_value = mean(value, na.rm = TRUE),
             se = sqrt(var(value, na.rm = TRUE) / sum(!is.na(value)))) %>%
   filter(Type != "id.vars") %>%
   ungroup() %>%
   mutate(Type = factor(Type),
          Type = reorder(Type, -mean_value, na.rm = TRUE))

ggplot(agg_data, aes(x = Date2, y = mean_value, fill = Type)) +
  geom_area(position = 'identity', alpha = 0.4) +
  geom_line(aes(color = Type), lwd = 1) +
  geom_errorbar(aes(ymin = mean_value - se, ymax = mean_value + se, color = Type), lwd = 0.7, width = 1) +
  geom_point(shape = 21) 

我使用的用户名是 deco

我还在core-site.xml文件中添加了以下条目:

Connecting to jdbc:hive2://localhost:10000
18/10/25 09:45:38 [main]: WARN jdbc.HiveConnection: Failed to connect to localhost:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: deco is not allowed to impersonate anonymous (state=08S01,code=0)

我仍然无法使用Beeline进行连接。我使用了以下命令:

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

$HIVE_HOME/bin/beeline -u jdbc:hive2://localhost:10000

我什至备份了metastore_db文件夹,并使用以下命令重新启动:

$HIVE_HOME/bin/beeline -n $(whoami) -u jdbc:hive2://localhost:10000

我什至在hiveserver2的10001端口上启动并将beeline连接到10001,仍然出现相同的错误

以上所有都证明是徒劳的。

帮助我快死了

1 个答案:

答案 0 :(得分:1)

我曾经遇到这个错误

不允许用户*冒充匿名用户

这是因为默认情况下,hive尝试以调用用户的身份执行操作,因此我在hive配置文件conf / hive-site.xml中添加了以下几行,要求hive以hiveserver2进程用户的身份执行操作,然后将其删除错误:

MCAUSER

Here is the document

假冒

默认情况下,HiveServer2执行查询处理的方式为 提交查询的用户。但是如果以下参数是 设置为false时,查询将以hiveserver2的用户身份运行 进程运行为。

hive.server2.enable.doAs –默认情况下模拟连接的用户 是的。