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.       下载完成后,进行正常的安装。安装完成的界面如下所示:

Squirrel 连接Hive

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

填写名称

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

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

Squirrel 连接Hive

 

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

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

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

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

 

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

Squirrel 连接Hive

 

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

首先打开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.       开始使用客户端进行连接

Squirrel 连接Hive


Squirrel 连接Hive

Squirrel 连接Hive

 

 

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

上一篇:都是套路:WannaCry病毒界面被诈骗者用作新的钓鱼手段


下一篇:附加没有日志文件的数据库方法