一、hiveserver2 身份认证
hiveserver2的身份认证采用LDAP,使用LDAP的工具采用开源的apacheDS。
1、apacheDS下载
安装参考:apacheDS ldap 安装,配置,增删查该及备份恢复_亦非我所愿丶的博客-优快云博客_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随笔的博客-优快云博客 | |||
apacheDS ldap | apacheDS ldap 安装,配置,增删查该及备份恢复_亦非我所愿丶的博客-优快云博客_apacheds openldap | |||
自定义身份认证 | ||||
LDAP是什么? | LDAP是什么?_IChen.的博客-优快云博客_ldap | |||
轻型目录访问协议 | 轻型目录访问协议_百度百科 | |||
LDAP概念 | LDAP概念 - 百度文库 | |||
HiveServer2集成LDAP做用户认证 | HiveServer2集成LDAP做用户认证_weixin_34007906的博客-优快云博客 | |||
如何配置hive session过期时间 | 如何配置hive session过期时间_love others as self的博客-优快云博客_hive连接超时 | |||
HiveServer2多数据源对象池实战 | HiveServer2多数据源对象池实战 - 简书 | |||
java使用jdbc连接hive | Java使用JDBC连接Hive - 百度文库 | |||
JDBC 所有参数说明(最全) | JDBC 所有参数说明(最全)_疯狂的狮子Li的博客-优快云博客_jdbc参数 |