连接到cloudera hive 1.1.0>时,如何修复“readmessagebegin,old client中缺少的版本?”

pobjuy32  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(430)

我有一个定制的hive服务器,它扩展了hiveserver2。我可以使用cdh5中的以下参数启动它:

--hiveconf "hive.server2.authentication=NOSASL" \
  --hiveconf "hive.metastore.local=true" \
  --hiveconf "hive.metastore.uris=" \
  --hiveconf "hive.metastore.sasl.enabled=false" \
  --hiveconf "fs.hdfs.impl.disable.cache=true" \
  --hiveconf "fs.file.impl.disable.cache=true" \
  --hiveconf "hive.server2.authentication.kerberos.principal=$KRB_PRINCIPAL" \
  --hiveconf "hive.server2.authentication.kerberos.keytab=$KRB_KEYTAB"

但是,每当我尝试使用beeline连接到它时,都会出现以下错误:
17/09/04 03:04:44错误tthreadpoolserver:处理邮件时发生thrift错误。org.apache.thrift.protocol.tprotocolexception:readmessagebegin中缺少版本,旧客户端?在org.apache.thrift.protocol.tbinaryprotocol.readmessagebegin(tbinaryprotocol。java:228)在org.apache.thrift.tbaseprocessor.process(tbaseprocessor。java:27)在org.apache.hive.service.auth.tsetipaddressprocessor.process(tsetipaddressprocessor。java:56)在org.apache.thrift.server.tthreadpoolserver$workerprocess.run(tthreadpoolserver。java:286)在java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor。java:1142)在java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor。java:617)在java.lang.thread.run(线程。java:745)
此错误与readmessagebegin,old client?中的hive-thrift-missing version中报告的错误相同?。但条件不同:我的身份验证已经设置为nosal,服务器的旧版本已经是v7。
有没有其他原因会导致它被触发(e、 (来自hive site.xml的错误配置)

ndh0cuux

ndh0cuux1#

前两天我也遇到了同样的问题,我认为问题是你在不同的传输模式下启动服务器和客户端。尝试将这些属性放到hive-site.xml中

<property>
      <name>hive.server2.transport.mode</name>
      <value>http</value>
  </property>

  <property>
      <name>hive.server2.thrift.http.port</name>
      <value>10001</value>
  </property>

  <property>
      <name>hive.server2.thrift.http.path</name>
      <value>cliservice</value>
  </property>

然后启动元存储:

nohup bin/hive --service metastore &

启动hiveserver2

hive --service hiveserver2 --hiveconf hive.server2.thrift.port=10001 --hiveconf hive.root.logger=INFO,console

然后从直线连接:

!connect jdbc:hive2://localhost:10001/hive;transportMode=http;httpPath=cliservice

您将连接到:apache hive。

相关问题