hiveserver2 权限& jdbc连接

一、hiveserver2 身份认证

hiveserver2的身份认证采用LDAP,使用LDAP的工具采用开源的apacheDS。

1、apacheDS下载

 安装参考:apacheDS ldap 安装,配置,增删查该及备份恢复_亦非我所愿丶的博客-CSDN博客_apacheds openldap

(1)ApacheDS服务:

      下载地址:Downloads — Apache Directory

       最新版本:apacheds-2.0.0.AM26.tar.gz

(2)ApacheDirectoryStudio客户端

     下载地址: Index of /dist/directory/studio 

      由于新版本要求JDK11以上, 使用的是老版本ApacheDirectoryStudio-2.0.0.v20200411-M15-macosx.cocoa.x86_64.dmg

2、apacheDS安装

     在linux服务器安装:

  (1)解压到安装目录

   tar zxf apacheds-2.0.0.AM26.tar.gz -C  /home/mydev/app/

  (2)启动

        /home/mydev/app/apacheds-2.0.0.AM26/bin/apacheds.sh start

   (3)停用

       /home/mydev/app/apacheds-2.0.0.AM26/bin/apacheds.sh stop

3、ApacheDirectoryStudio安装 

         在PC端点击安装。

         (1) LDAP的概念

               LDAP:Light Directory Access Protocol 轻量级目录访问协议,ldap是一种目录数据库存储方式

               DN:是LDAP数据ID。

                          DN:dc=某公司,dc=com 是一个根节点

                          DN:ou=研发部,dn=某公司,dn=com,表示研发部属于这个DN。

                          DN:uid=某个人,ou=研发部,dn=某公司,dn=com  表示研发部下的某个人。

       (2)配置新的partition,需要重启apacheDS才生效。

       (3)配置用户的密码,一定要点击bind.否则不生效。               

4、hive的配置文件

       (1)hive-site.xml

        cd /opt/module/hive/conf/

    <property>
        <!-- hiveserver2的认证方式 -->
        <name>hive.server2.authentication</name>
           
        <value>LDAP</value>
         
    </property>

    <property>
       <!-- hiveserver2的认证ldap的地址-->
        <name>hive.server2.authentication.ldap.url</name>
           
        <value>ldap://172.16.0.10:10389</value>
         
    </property>

        <property>
        <!-- hiveserver2的认证根节点-->
        <name>hive.server2.authentication.ldap.baseDN</name>
           
        <value>ou=test,dc=pingpukj,dc=com</value>
         
    </property>

       (2)重启hiveserver2生效

             nohup hive --service hiveserver2

            查看端口验证重启是否成功:netstat -ntulp | grep 10008

5、验证hiveserver2连接

     beeline -u jdbc:hive2://172.16.0.10:10008/default -n agc -p *****

     其中 agc ******就是在apacheds配置的用户名和密码。

    (1)apacheDS、oranger、hadoop用户。

         名称一样的用户,权限都是一一对应的。

          apacheDS里有的用户,在hadoop没有的,可以提交查询任务,但是hdfs权限没有。

二、Jdbc连接 hiveserver2 

    1、jdbc的连接超时

        在jdbc的url里设置

           connectTimeout/loginTimeout:连接超时

           socketTimeout:网络超时

     2、hive的session超时                   

        (1)hive-site.xml

        cd /opt/module/hive/conf/

<property>

     <name>hive.server2.session.check.interval</name>

     <value>60000</value>

   </property>

   <property>

     <name>hive.server2.idle.operation.timeout</name>

     <value>1440000</value>

   </property>

   <property>

     <name>hive.server2.idle.session.timeout</name>

     <value>4320000</value>

   </property>

     3、hive的参数设置  jdbc:hive2://103.89.185.148:10008/rsr;loginTimeout=300000;connectTimeout=300000;socketTimeout=300000?spark.executor.instances=2;spark.app.name=zyh

    4、java代码示例

package com.pingpukj;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class HiveJdbc {

    Logger logger = LoggerFactory.getLogger("HiveJdbc");

    private  static  String driverName="org.apache.hive.jdbc.HiveDriver";
    private  static  String url="jdbc:hive2://*.*.*.*:10008/rsr;loginTimeout=300000;connectTimeout=300000;socketTimeout=300000?spark.executor.instances=2;spark.app.name=zyh;";
    private  static  String user="agc";
    private  static  String password="***";

    public static void main(String[] args) throws Exception {
        try {
            Class.forName(driverName);

        Connection con = DriverManager.getConnection(url, user, password);

            String sql = " select count(1) as cnt from rsr.dwd_farmer_info_df";
            String sql1 = "desc rsr.dwd_farmer_info_df";
        /*String sql2 ="\n" +
                "create  external table rsr.tmp_zyh_0509_3\n" +
                "(\n" +
                "    test_name string\n" +
                ")\n" +
                "partitioned by (dt string)\n" +
                "row format delimited null defined as ''\n" +
                "stored as orc\n" +
                "location'/user/agc/data/rsr/tmp_zyh_0509_3/'\n" +
                "TBLPROPERTIES (\"orc.compress\"=\"SNAPPY\")"; */
            PreparedStatement preparedStatement = con.prepareStatement(sql);


            //Boolean resultSet1 = preparedStatement.execute(sql2)

            // System.out.println(resultSet1.toString());
            ResultSet resultSet = preparedStatement.executeQuery();

            while (resultSet.next()) {
                System.out.println(resultSet.getInt("cnt"));
            }

            con.close();


        }catch(ClassNotFoundException e)
        {
            e.printStackTrace();
            System.exit(1);
        }

    }
}


参考:

标题地址

一篇文章彻底理解 HIVE 常见的三种 AUTHENTICATION 认证机制的配置与使用

一篇文章彻底理解 HIVE 常见的三种 AUTHENTICATION 认证机制的配置与使用_明哥的IT随笔的博客-CSDN博客

apacheDS ldap

apacheDS ldap 安装,配置,增删查该及备份恢复_亦非我所愿丶的博客-CSDN博客_apacheds openldap

自定义身份认证

 HiveServer2自定义身份验证 - 灰信网(软件开发博客聚合)

LDAP是什么?

LDAP是什么?_IChen.的博客-CSDN博客_ldap
轻型目录访问协议轻型目录访问协议_百度百科
LDAP概念LDAP概念 - 百度文库

HiveServer2集成LDAP做用户认证

HiveServer2集成LDAP做用户认证_weixin_34007906的博客-CSDN博客

如何配置hive session过期时间

如何配置hive session过期时间_love others as self的博客-CSDN博客_hive连接超时

HiveServer2多数据源对象池实战

HiveServer2多数据源对象池实战 - 简书
java使用jdbc连接hiveJava使用JDBC连接Hive - 百度文库

JDBC 所有参数说明(最全)

JDBC 所有参数说明(最全)_疯狂的狮子Li的博客-CSDN博客_jdbc参数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值