JAVA 中的 Hive JDBC 连接

Posted

技术标签:

【中文标题】JAVA 中的 Hive JDBC 连接【英文标题】:Hive JDBC connection in JAVA 【发布时间】:2018-10-17 11:28:50 【问题描述】:

错误:

原因:org.apache.thrift.transport.TTransportException:不能 创建 http 连接到 jdbc:hive2://xxxxxxxxxx.azurehdinsight.net:443/default;transportMode=http;ssl=true;httpPath=/hive2。 HTTP 响应码:403

代码:

public static void main(String[] args) throws SQLException 
    Class.forName("org.apache.hive.jdbc.HiveDriver");
    Connection con = DriverManager.getConnection("jdbc:hive2://xxxxx.azurehdinsight.net:443/default;transportMode=http;ssl=true;httpPath=/hive2", "xxx", "xxx");
    Statement stmt = con.createStatement();
...

我的 Hive 版本:1.2.1.2.5

我的 pom 文件:

<dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-jdbc</artifactId>
        <version>1.2.0</version>
        <classifier>standalone</classifier>
</dependency>

【问题讨论】:

检查您的集群用户访问权限 【参考方案1】:

查看wikipedia 以获取更多详细信息:

当客户端不被允许访问时返回 HTTP 403 除了身份验证之外的某种原因的资源

检查您的证书(以防它过期等),并检查您的用户是否具有访问 Hive 的适当权限。

【讨论】:

以上是关于JAVA 中的 Hive JDBC 连接的主要内容,如果未能解决你的问题,请参考以下文章

通过 Java JDBC 连接 Hive

Java使用JDBC连接Hive

Java采用JDBC的方式连接Hive(SparkSQL)

jdbc连hive怎么批量插入

mysql与hive的连接错误

使用Spark实现推主机群Hive数据到租户集群Hive的高性能Hive2Hive数据集成Java需编写JDBC连接Hive解析元数据