IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> DataGrip连接Hive、Impala数据源 -> 正文阅读

[大数据]DataGrip连接Hive、Impala数据源

概述

最近在负责一款数据产品,因调试需要,得经常执行impala查询SQL。公司内部维护有一个Hive/Impala查询平台,本来可以使用多账户登录此查询平台:一个是自己的域账户,当然权限非常有限,很多表不可查询;另一个是report账户,相当于管理员账户。这肯定非常不安全,无论是从安全,还是数据资产等维度来讲。

故而,最近该查询平台增加登录验证码功能。即,根据域账户,把随机数字发到域账户对应的企微账户上。这就相当于禁用report账户。

需求

于是给自己这么一个需求,或者叫问题:作为宇宙第一的数据可视化查询工具,DataGrip支持Hive/Impala数据源吗?

解决

Hive

使用的DataGrip 2021.2版本,不算太老。这个原生支持:
在这里插入图片描述
OK,常规的配置用户名,密码,连接串URL,以及驱动信息,因为程序代码里面使用如下hive-jdbc

<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>2.1.1-cdh6.2.1</version>
</dependency>

故而配置驱动指向本地maven私服仓库:
在这里插入图片描述
结果报错,报错信息如下:

Driver class 'org.apache.hive.service.rpc.thrift.TCLIService$Iface' not found.

这是为啥?jar包里面没有这个类。通过jd-gui应用程序查看jar文件,确实没有此类。说明这个jar通过程序JDBC方式连接Hive数据源可以,但是通过DataGrip方式不行。

尝试使用DataGrip自带的自动下载驱动的功能,下载的驱动全都在此路径下面,C:\Users\awesome_me\AppData\Roaming\JetBrains\DataGrip2021.2\jdbc-drivers,至于我们现在配置的是hive数据源,故而具体路径是C:\Users\awesome_me\AppData\Roaming\JetBrains\DataGrip2021.2\jdbc-drivers\Hive\3.1.2

点击Test Connection,结果报错,详细的报错信息:

[ 08S01] Could not open client transport with JDBC Uri: jdbc:hive2://111.222.333.444:10000/edw: Could not establish connection to jdbc:hive2://111.222.333.444:10000/edw: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null, configuration:{set:hiveconf:hive.server2.thrift.resultset.default.fetch.size=1000, use:database=edw})
org.apache.hive.org.apache.thrift.TApplicationException: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null, configuration:{set:hiveconf:hive.server2.thrift.resultset.default.fetch.size=1000, use:database=edw}).

参考:required-field-client-protocol-is-unset,意思是连接的Hive数据源版本太低,而我们使用的驱动版本太高。

解决方法只能是降低驱动版本,如果不知道数据源的Server版本,则需要联系数仓同事获取版本,或者一个个版本尝试。major.minor.fix,即 主版本号.次版本号.修订版本号,先尝试主版本号,其次是次版本号。

于是下载跟hive server版本适配的驱动,从maven下载即可。

详细的报错信息如下:

Driver class 'org.apache.hadoop.conf.Configuration' not found.

https://repository.cloudera.com/artifactory/cloudera-repos/org/apache/hive/hive-jdbc/2.1.1-cdh6.2.1/
在这里插入图片描述

Impala

DataGrip虽然不原生支持连接Impala数据源,但简单调研,参考文章Impala可视化工具DataGrip,就知道可通过如下方式实现连接。
首先,需要创建一个Driver:
在这里插入图片描述
Impala JDBC驱动下载地址,添加此文件,DataGrip会自动扫码此jar包里面的所有继承官方JDBC驱动,即java.sql.Driver的类,然后从右侧的下拉列表选择com.cloudera.impala.jdbc41.Driver
在这里插入图片描述
然后,就可以像添加其他数据源一样添加Impala数据源。

上面提到的参考文章说,URL的格式为:jdbc:impala://197.255.20.215:21050/,端口我21050。

但是很不幸,连接失败,报错信息如下:

[HY000][500164] [Cloudera][ImpalaJDBCDriver](500164) Error initialized or created transport for authentication: java.net.ConnectException: Connection timed out: connect.
[Cloudera][ImpalaJDBCDriver](500164) Error initialized or created transport for authentication: java.net.ConnectException: Connection timed out: connect.

报错信息跟认证和超时相关。说明这个驱动jar程序是没有问题的。但是这个报错咋解决?

网上也找不到可行的解决方案。

https://community.cloudera.com/t5/Support-Questions/Proper-jdbc-connection-string-to-connect-to-impala-with/m-p/42261

转而想到,impala本质上还是hive,那为何不考虑通过hive的方式连接Impala数据源呢?

需要注意的是,hive的端口是10000,impala的端口是25005。
在这里插入图片描述

参考

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 22:14:33  更:2022-03-17 22:15:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:08:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码