SQuirrel SQL Client 连接Hive2

SQuirrel连接Hive教程
本文介绍如何配置和使用SQuirrel SQL Client连接Hive,包括启动HiveServer2服务、安装配置SQuirrel软件、添加Hive驱动、创建Hive链接等步骤,并解决权限和超时等常见问题。

一、先决条件
假设已经部署好hadoop集群并且在集群服务器上都已安装hive
首先需要启动hiveserver2服务:

cd $HIVE_HOME/bin
hive --service hiveserver2

查看hive.log确认hive2启动成功:
这里写图片描述
这里写图片描述

二、安装并配置SQuirrel
1)官网地址: http://www.squirrelsql.org/,我下载的版本是3.7.1
下载后双击squirrel-sql-3.7.1-standard.jar,进行安装,安装过程有一步可以选中文:
这里写图片描述
其它的直接下一步就好。
2)从开始菜单中打开SQuirrel SQL Client,点击最左侧的”Drivers”驱动tab页,点击添加(+)来添加Hive的驱动配置:
这里写图片描述
3)在弹出的添加驱动对话框中填入Hive的驱动信息:
这里写图片描述
注意:在点击“OK”前,需要点“Extra Class Path”tab页导入所需jar包(jar包都可以在hive或hadoop下找到),列表如下:
这里写图片描述
这里写图片描述
然后就可以点击OK了,SQuirrel会有连接提示:
这里写图片描述
4)进入最左侧的”Aliases”别名tab页面,点击添加(+),建立一个Hive的链接:
这里写图片描述
这里要注意下:user name和password取决于hadoop的core-site.xml文件的配置,如下:
这里写图片描述
我这里配置为*,就不用填写username和password了,如果这两项没配置会有报错:java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
User:hadoop is not allowed to impersonate anonymous
或者可以设置Hive的用户名和密码,修改$HIVE_HOME/conf/hive-site.xml:

<property>  
        <name>javax.jdo.option.ConnectionUserName</name>  
        <value>root</value>  
        <description>ername to use against metastoredatabase</description>  
</property>  
<property>  
        <name>javax.jdo.option.ConnectionPassword</name>  
        <value>123456</value>  
        <description>password to use against metastoredatabase</description>  
</property> 

5)SQuirrel SQL Client连接Hive2
双击创建的Aliases点击Connect即可连接到Hive:
这里写图片描述

三、SQuirrel常见错误
1)错误信息:Permission denied: user=hive, access=READ_EXECUTE, inode=”/tmp/xxx”:Hadoop:supergroup:drwx——
解决办法:
a、由于Hive没有hdfs:/tmp目录的权限,赋权限即可:

hdfs dfs -chmod -R 777 /tmp

b、给个别用户赋权:

hadoop fs -chown -R hive:hive  /tmp  其中hive是通过jdbc访问hive数据库连接中的用户名

2)错误信息:Error: org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Read timed out
调配hive参数:

hive.metastore.client.socket.timeout
说明:Client socket 的超时时间
默认值:20秒
设置命令:set hive.metastore.client.socket.timeout = 500

注意:HiveMetaStore建议启动在hadoop集群的master服务器;HiveServer2建议启动在hadoop集群的slave服务器上;不然会出现一些问题,比如:java.lang.OutOfMemoryError: PermGen space(我把HiveServer2启动在master上就会报这个错,没找到根本原因)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值