情况: 我在不同的Docker容器中设置了Hive,Hue和Hadoop。在同一个Docker网络中。我为每个1 Hadoop Namenode,2个Datanodes,1个Hue实例,1个Hive Server和一个Postgres Metastore创建了一个Container。我能够在namenode的hdfs-site.xml中配置一个hue代理用户,并可以通过webhdfs浏览文件系统。但对于Hive,我在Hue中得到错误:
Failed to open new session: java.lang.RuntimeException:
org.apache.hadoop.ipc.RemoteException
(org.apache.hadoop.security.authorize.AuthorizationException):
User: root is not allowed to impersonate hue
我可以在Hive中创建Hive表,或者从Sparkjobs中写入它们。
到目前为止我尝试过的事情:
我尝试添加
等属性在不同的配置文件中,如:
大部分内容都是在类似问题中提出的,但似乎不再是最新版本了。对于某些属性,Hive说:属性未知
我需要澄清的内容:
其他信息: - Hive版本:2.3.1 - Hive Hadoop版本:2.7.4 - Hadoop集群版本:2.7.2(我认为版本差异不应该是这里的问题?!)
Hue版本:4(gethue / hue:最新形式的docker-hub)
答案 0 :(得分:1)
好的,我找到了一个有效的解决方案:
将以下属性添加到hadoop namenodes和datanodes core-site.xml:
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
此外,如果Hive在hue .ini文件中的另一台机器/容器上运行,则需要设置Hive配置的路径,并将hive-config文件夹复制到您的hue容器/机器。
请注意,在Hue文档中,WebHdfs的配置在 hdfs-site.xml 中完成,而hive配置在 hive-site.xml 的
答案 1 :(得分:0)
我也遇到了和你一样的问题。不同的是我在本地搭建了一个Hadoop生态集群。当我想将我的 HDFS 文件系统与 Hue 集成时,我遇到了这个问题。我的想法是我的 Hadoop 属于 root 用户。我安装hue的时候添加了hue用户,所以需要修改hue的权限,让我的hue访问Hadoop。其实这就像文件夹之间的相互访问一样。我的Hadoop属于最高级别的root,但是我的hue不是,所以思路很清晰。希望能帮到你