Squirrel 连接Hive

简介:

最近接手了一个数据分析的项目,开发语言是Hive。 看到见小伙伴们开发调试都在命令行上,经常需要window下编写hive sql,再拷贝到linux中进行执行,效率感觉比较低。于是,想寻找一个客户端工具来提供开发调试的效率。网上一问度娘,发现了Squirrel这个客户端工具,但对于如何安装、配置却没有一个完整描述,实在让人恼火。 运维同事也表示不熟悉开发工具,看来还得“自给自足”啊。

1.       下载工具:https://sourceforge.net/projects/squirrel-sql/files/1-stable/3.8.0/squirrel-sql-3.8.0-standard.jar/download

2.       下载完成后,进行正常的安装。安装完成的界面如下所示:

7023860020b30448c66d08ce5350fa2f29665b2e

3.       配置Driver,如下图所示:

填写名称

填写URL: jdbc:hive2://192.168.142.128:10000/test (可先随便写一个地址)

填写ClassName: org.apache.hive.jdbc.HiveDriver

321e0130e3e6bc27ee0d9635b5e3f56964300e95

 

重点问题,就是这里的 class Path:

需要选中Extra Class Path,然后让Hive的lib目录下的所有jar包和 hadoop的lib目录下的所有jar,都加入进来。

(虽然简单粗暴,却非常有效)

我个环境上,做了以上操作后,仍然缺少一个slf4j-api的jar包,只有单独下载并加入进来。

 

4.       新建连接,选择刚刚创建的Driver,建立连接。如下所示:

11404f6eb74e9faad91826945cd502a76d9db2bb

 

这里的重点是这个用户名和密码。

首先打开hive的hive-site.xml,配置端口、用户名和密码。


<property>
  <name>hive.server2.thrift.port</name>
  <value>10000</value>
  <description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description>
</property>
<property>
  <name>hive.server2.thrift.client.user</name>
  <value>hive</value>
  <description>Username to use against thrift client</description>
</property>
<property>
  <name>hive.server2.thrift.client.password</name>
  <value>123456</value>
  <description>Password to use against thrift client</description>
</property>


 

其次,打开hadoop的core-site.xml,配置代理用户(我理解是代理Hive远程连接去操作HDFS的用户),新增如下内容

远程连接时或使用 beeline连接,需要注意代理用户,其它用户无权限通过hive 操作hdfs

 


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


 

然后设置hadoop安装目录下的tmp目录的权限(操作系统本地目录)

chmod 777   hadoop目录上的tmp目录   (否则连接时会报:(Connection refused) (state=08S01,code=0)

 

最后记得重启hadoop和hiveServer2 。

重启还需要设置一下hdfs目录的权限(不是本地目录)

 hdfs dfs -chmod -R 777 /tmp   (否则运行sql时会报:Permission denied: user=hive, access=EXECUTE, inode="/tmp":root:supergroup:drwx-----

 

开放操作系统的端口,否则仍然无法远程连接

 firewall-cmd --add-port=10000/tcp

 

5.       开始使用客户端进行连接

eca0410a8c2d5817a5c51be1a941e387ffa9cea4


edf4cbc40fdfb845ac47999f6ece96a9b39b4f25

8046c84910bc6207b236708e91d4c4f50c7710be

 

 

终于大功造成,记录下关键步骤分享给大家。

相关文章
|
SQL HIVE
DataGrip连接Hive执行DDL操作报错:「FAILED: ParseException line 1:5 cannot recognize input near 'show' 'indexes' 'on' in ddl statement」
DataGrip连接Hive执行DDL操作报错:「FAILED: ParseException line 1:5 cannot recognize input near 'show' 'indexes' 'on' in ddl statement」
615 0
DataGrip连接Hive执行DDL操作报错:「FAILED: ParseException line 1:5 cannot recognize input near 'show' 'indexes' 'on' in ddl statement」
|
3月前
|
SQL 分布式计算 JavaScript
Hive的JOIN连接
Hive的JOIN连接
59 5
|
5月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用问题之如何使用Flink SQL连接带有Kerberos认证的Hive
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
SQL DataWorks 网络安全
DataWorks操作报错合集之DataWorks连接Hive数据库时出现连接超时的问题如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
110 2
|
SQL HIVE Python
Window10 pyhive连接hive报错:Could not start SASL: b‘Error in sasl_client_start (-4) SASL(-4)
Window10 pyhive连接hive报错:Could not start SASL: b‘Error in sasl_client_start (-4) SASL(-4)
677 0
Window10 pyhive连接hive报错:Could not start SASL: b‘Error in sasl_client_start (-4) SASL(-4)
|
SQL 关系型数据库 MySQL
Mybatis-Plus(连接Hive)
Mybatis-Plus(连接Hive)
272 0
|
SQL 存储 大数据
大数据Hive Join连接查询
大数据Hive Join连接查询
132 0
|
SQL 数据库 HIVE
Python连接Hive数据库
Python连接Hive数据库
|
SQL 分布式计算 网络协议
hive连接被拒
connection refused
250 0
|
SQL Java 数据库连接
本地客户端 dbeaver-连接HIVE库
本地客户端 dbeaver-连接HIVE库 hive库管理套件
本地客户端 dbeaver-连接HIVE库