%jdbc(hive) - 无法使用 JDBC Uri 打开客户端传输

Posted

技术标签:

【中文标题】%jdbc(hive) - 无法使用 JDBC Uri 打开客户端传输【英文标题】:%jdbc(hive) - Could not open client transport with JDBC Uri 【发布时间】:2019-06-08 06:00:46 【问题描述】:

我正在尝试使用 Zeppelin 上的 JDBC 驱动程序运行一些配置单元查询。

当我运行这个命令时,%jdbc(hive)

我得到以下响应错误。

java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: java.net.ConnectException: Connection refused (Connection refused)

以下是我的 hive-site.xml。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
--><configuration>
<property><name>hive.metastore.uris</name><value>thrift://hive-metastore:9083</value></property>
<property><name>datanucleus.autoCreateSchema</name><value>false</value></property>
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:postgresql://hive-metastore-postgresql/metastore</value></property>
<property><name>javax.jdo.option.ConnectionDriverName</name><value>org.postgresql.Driver</value></property>
<property><name>javax.jdo.option.ConnectionPassword</name><value>hive</value></property>
<property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value></property>
</configuration>

以下是解释器属性和依赖项。

更新

我在下面的/tmp/root/hive.log 文件中找到。因此,根本原因必须在 hive-metastore。

    2019-01-14T10:58:56,379 INFO  [main]: hive.metastore (:()) - Trying to connect to metastore with URI thrift://hive-metastore:9083
.....
.....
2019-01-14T10:58:59,660 INFO  [main]: server.HiveServer2 (HiveServer2.java:stop(476)) - Shutting down HiveServer2

【问题讨论】:

【参考方案1】:

在您的配置中,HS2 与 Zeppelin 位于同一台机器上。那正确吗? 另外,你能从 Zeppelin 主机连接到 HS2 的端口吗? 测试:

telnet hive_host hive_port (default 10000)

在 hive jdbc 字符串中,通常在端口后有一个 '/' 用于连接数据库,你的是空的,我建议将此字符串更改为:

jdbc:hive2://$HIVE_HOST:$HIVE_PORT/DB

如果您在 DB 中不插入任何内容,HS2 将默认连接到数据库。

【讨论】:

以上是关于%jdbc(hive) - 无法使用 JDBC Uri 打开客户端传输的主要内容,如果未能解决你的问题,请参考以下文章

Ambari Hive 无法正常查询 问题分析处理

无法通过 jdbc 连接到 hive

无法使用 jdbc 通过 Hive 连接到 HBase

无法通过 jdbc 连接到 hive 3

Java使用JDBC连接Hive

Hive JDBC 连接问题