【问题标题】:Beeline to hiveserver 2 : Required field 'serverProtocolVersion' is unset error直线到 hiveserver 2:必填字段“serverProtocolVersion”未设置错误
【发布时间】:2017-02-18 22:52:23
【问题描述】:

尝试从直线连接到 hiveserver2 时出现以下错误

Error: Could not establish connection to jdbc:hive2://localhost:10000/default:     Required field 'serverProtocolVersion' is unset!

我在 hadoop2.7.3、hive 2.1.1、从 spark 2.1.0 到 hadoop 2.7 的直线客户端都在 Mac OS-X 10 上使用 hive-jdbc-2.1.1-standalone.jar 运行

同样的错误在消息的后面部分也提到了以下内容

(User: hv is not allowed to impersonate anonymous), serverProtocolVersion:null)

我在 hive-site.xml 中设置了以下内容

  <property>
     <name>hive.server2.enable.impersonation</name>
      <description>Enable user impersonation for HiveServer2</description>
      <value>true</value>
   </property>
   <property>
       <name>hive.server2.enable.authentication</name>
       <description>Enable user impersonation for HiveServer2</description>
       <value>NONE</value>
   </property>
   <property>
       <name>hive.server2.enable.doAs</name>
       <value>true</value>
   </property>
   <property>
       <name>hive.metastore.execute.setugi</name>
       <value>true</value>
       <description>
       ...
       </description>
   </property>

以及 core-site.xml 中的以下内容

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

不确定 serverProtocolError 是否导致了模拟问题。请帮忙

【问题讨论】:

  • 你能发布使用直线连接的命令吗?

标签: hadoop hive beeline


【解决方案1】:

请尝试在 hive-site.xml 中设置以下属性

<property>
  <name>hive.server2.allow.user.substitution</name>
  <value>true</value>
</property>

【讨论】:

  • 感谢 Satish,我仍然遇到这两个错误。 'serverProtocolVersion 未设置'和'用户 hv 不能模拟匿名'。
  • 不确定这是两个独立的问题还是一个导致另一个问题。
  • hive.server2.allow.user.substitution 的默认值为 true。所以除非它被改变,否则将它设置为 true 将无济于事。
猜你喜欢
  • 2020-06-08
  • 1970-01-01
  • 2020-06-12
  • 1970-01-01
  • 1970-01-01
  • 2019-09-30
  • 2016-07-04
  • 2020-03-01
  • 1970-01-01
相关资源
最近更新 更多