尝试通过 WebHCat 查询 Hive 时超级用户的未经授权的连接:hcat”
Posted
技术标签:
【中文标题】尝试通过 WebHCat 查询 Hive 时超级用户的未经授权的连接:hcat”【英文标题】:Unauthorized connection for super-user: hcat" when trying to query Hive through WebHCat 【发布时间】:2016-03-17 22:59:31 【问题描述】:我正在尝试使用 WebHCat / Templeton 执行 Hive 查询。我将我的查询发布到 /templeton/v1/hive,并设置了等于我的查询的“执行”参数(现在是一个简单的“选择计数(*)”查询)。
但是当我这样做时,我总是会得到这个错误:
"error":"Unauthorized connection for super-user: hcat from IP 172.31.27.207"
从我目前能够找到的情况来看,这些“超级用户未经授权的连接”错误似乎通常与代理用户设置有关,因此我在 core-site.xml 中添加了以下内容:
<property>
<name>hadoop.proxyuser.hcat.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hcat.groups</name>
<value>*</value>
</property>
不幸的是,这似乎根本没有帮助。添加这个并重新启动服务后,我仍然得到同样的错误。
我还确认此处引用的所有设置 - https://cwiki.apache.org/confluence/display/Hive/WebHCat+InstallWebHCat
设置为启用代理用户部分下的列表。
这是我在尝试查询时在 webhcat 日志中看到的内容:
WARN | 17 Mar 2016 19:07:04,977 | org.apache.hive.hcatalog.templeton.Main | user.name is sent as form parameter which is deprecated as of Hive 0.13. Should send it in the query string.
WARN | 17 Mar 2016 19:07:04,977 | org.apache.hive.hcatalog.templeton.Main | user.name is sent as form parameter which is deprecated as of Hive 0.13. Should send it in the query string.
WARN | 17 Mar 2016 19:07:04,977 | org.apache.hive.hcatalog.templeton.Main | user.name is sent as form parameter which is deprecated as of Hive 0.13. Should send it in the query string.
INFO | 17 Mar 2016 19:07:05,064 | org.apache.hadoop.yarn.client.api.impl.TimelineClientImpl | Timeline service address: http://ip-172-31-27-207.ec2.internal:8188/ws/v1/timeline/
INFO | 17 Mar 2016 19:07:05,064 | org.apache.hadoop.yarn.client.RMProxy | Connecting to ResourceManager at ip-172-31-27-207.ec2.internal/172.31.27.207:8050
INFO | 17 Mar 2016 19:07:05,229 | org.apache.hadoop.yarn.client.api.impl.TimelineClientImpl | Timeline service address: http://ip-172-31-27-207.ec2.internal:8188/ws/v1/timeline/
INFO | 17 Mar 2016 19:07:05,229 | org.apache.hadoop.yarn.client.RMProxy | Connecting to ResourceManager at ip-172-31-27-207.ec2.internal/172.31.27.207:8050
INFO | 17 Mar 2016 19:07:05,305 | org.apache.hadoop.yarn.client.api.impl.TimelineClientImpl | Timeline service address: http://ip-172-31-27-207.ec2.internal:8188/ws/v1/timeline/
INFO | 17 Mar 2016 19:07:05,305 | org.apache.hadoop.yarn.client.RMProxy | Connecting to ResourceManager at ip-172-31-27-207.ec2.internal/172.31.27.207:8050
ERROR | 17 Mar 2016 19:07:05,315 | org.apache.hive.hcatalog.templeton.CatchallExceptionMapper | Unauthorized connection for super-user: hcat from IP 172.31.27.207
关于还有什么可能导致此问题以及如何解决的任何想法?
【问题讨论】:
除了您在此处提到的内容之外,似乎还有一些其他设置 -doc.mapr.com/display/MapR/Hive+User+Impersonation 。不确定您是否已涵盖所有这些内容。 【参考方案1】:好的,解决了。这就是发生的事情。我在 Ambari 工作以进行配置更改,这些设置位于“HDFS”部分下。进行更改后,Ambari 会提示您重新启动受影响的服务,因此我选择了这样做。不幸的是,事实证明,那只是重新启动 HDFS!因此,作为 YARN 一部分的 ResourceManager 组件(在 Ambari 术语中)没有被重新启动。重新启动 YARN 服务后,它现在可以正常工作了。
【讨论】:
【参考方案2】:我有同样的问题,但下一个指南解决了我:http://docs.hortonworks.com/HDPDocuments/Ambari-2.2.0.0/bk_ambari_views_guide/content/_setup_HDFS_proxy_user.html
您必须添加用于访问 Ambari 用户界面的用户,而不是引发错误的用户。例如在我的情况下,错误是下一个:Unauthorized connection for super-user: root from IP 172.16.8.172
但我必须添加的用户是hadoop.proxyuser.admin.hosts
。
【讨论】:
以上是关于尝试通过 WebHCat 查询 Hive 时超级用户的未经授权的连接:hcat”的主要内容,如果未能解决你的问题,请参考以下文章
使用 Oozie 在 Hive 上执行查询时,如何解决“只能使用 kerberos 或 Web 身份验证颁发委托令牌”?