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

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

    填写名称

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

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

     

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

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

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

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

     

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

     

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

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

     

     

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值