hive CUSTOM authentication mode:通过用户名密码连接hiveserver

发布时间:2026/11/3 9:10:34

hive CUSTOM authentication mode:通过用户名密码连接hiveserver 文章目录一、官网说明二、实现三、第二个实现一、官网说明Authentication/Security ConfigurationHiveServer2 supports Anonymous (no authentication) with and without SASL, Kerberos (GSSAPI), pass through LDAP, Pluggable Custom Authentication and Pluggable Authentication Modules (PAM, supported Hive 0.13 onwards).Authentication mode:hive.server2.authentication – Authentication mode, default NONE. Options are NONE (uses plain SASL), NOSASL, KERBEROS, LDAP, PAM and CUSTOM.Set following for CUSTOM mode:hive.server2.custom.authentication.class – Custom authentication class that implements the org.apache.hive.service.auth.PasswdAuthenticationProvider interface.官网SettingUpHiveServer2-Authentication/SecurityConfiguration二、实现实现逻辑实现org.apache.hive.service.auth.PasswdAuthenticationProvider接口打包放到${hive_home}/lib 下配置hive-site.xml 在每一个hiveserver安装的地方重启hiveserver实现类逻辑很简单读取hive.jdbc_passwd.auth配置识别用户和密码。如果没有配置或者匹配不成功则抛出异常。import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hive.conf.HiveConf;import org.apache.hive.service.auth.PasswdAuthenticationProvider;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.security.sasl.AuthenticationException;/** * Description TODO * Author lianggao * Date 2023/6/12 下午3:45 */public class CustomPasswdAuthenticator implements PasswdAuthenticationProvider{private Logger LOGLoggerFactory.getLogger(CustomPasswdAuthenticator.class);privatestaticfinal String HIVE_JDBC_PASSWD_AUTH_PREFIXhive.jdbc_passwd.auth.%s;private Configuration confnull;publicCustomPasswdAuthenticator(){}publicvoidAuthenticate(String userName,String passwd)throws AuthenticationException{LOG.info(user: userName try login.);String passwdConfthis.getConf().get(String.format(hive.jdbc_passwd.auth.%s,userName));String message;if(passwdConfnull){messageusers ACL configration is not found. user:userName;LOG.info(message);throw newAuthenticationException(message);}elseif(!passwd.equals(passwdConf)){messageuser name and password is mismatch. user:userName;throw newAuthenticationException(message);}}public ConfigurationgetConf(){if(this.confnull){this.confnewConfiguration(newHiveConf());}returnthis.conf;}publicvoidsetConf(Configuration conf){this.confconf;}}修改hive-site.xml!--自定义远程连接用户名和密码--propertynamehive.server2.authentication/namevalueCUSTOM/value!--默认为none修改成CUSTOM--/property!--指定解析jar包--propertynamehive.server2.custom.authentication.class/namevalueorg.apache.hadoop.hive.contrib.auth.CustomPasswdAuthenticator/value/property!--设置用户名和密码--propertynamehive.jdbc_passwd.auth.usename1111/name!--用户名识别为usename1111--valuepswd1111/value!--密码--/property重启hiveserverjps kill-9hive_server_pid nohup./hive--service hiveserver2/tmp/hiveserver2.log21通过beeline连接hive测试beeline-u jdbc:hive2://hostname:10000 -n usename1111 -p pswd1111三、第二个实现可以将用户名、密码提前写到实现类中这样hive-site.xml的配置将更加简练package hive.test;import java.util.Hashtable;import javax.security.sasl.AuthenticationException;import org.apache.hive.service.auth.PasswdAuthenticationProvider;/* javac -cp $HIVE_HOME/lib/hive-service-0.11-mapr.jar SampleAuthenticator.java -d . jar cf sampleauth.jar hive cp sampleauth.jar $HIVE_HOME/lib/. */public class SampleAuthenticator implements PasswdAuthenticationProvider{HashtableString,Stringstorenull;publicSampleAuthenticator(){storenew HashtableString,String();store.put(user1,passwd1);store.put(user2,passwd2);}Override publicvoidAuthenticate(String user,String password)throws AuthenticationException{String storedPasswdstore.get(user);if(storedPasswd!nullstoredPasswd.equals(password))return;throw newAuthenticationException(SampleAuthenticator: Error validating user);}}hive-site.xmlpropertynamehive.server2.authentication/namevalueCUSTOM/value/propertypropertynamehive.server2.custom.authentication.class/namevaluehive.test.SampleAuthenticator/value/property参考https://docs.ezmeral.hpe.com/datafabric-customer-managed/72/Hive/HiveServer2-CustomAuth.html
延伸阅读

更多相关文章

2026/11/3 9:10:34

【shell】eval命令用法:简化shell结构 封装多个命令然后执行

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 9:10:34

【hive 运维】hive注释/数据支持中文

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 9:05:31

工业SPI隔离实战:PIC18F45K80与MAX14431的时序设计与调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 11:17:37

35岁测试工程师转型指南:技术升级与职业突破

1. 35岁软件测试工程师的职场困境解析 35岁对于软件测试从业者而言,往往是一个关键的分水岭。在这个阶段,我们通常会面临三个维度的职业挑战: 首先是技术迭代带来的压力。随着DevOps和持续测试的普及,传统的功能测试岗位需求正在…

2026/11/3 11:17:37

SQL高级语言实战:窗口函数与CTE深度解析

1. 为什么SQL高级语言值得深入学习 作为一名与数据库打了十年交道的开发者,我见过太多人止步于基础的SELECT和INSERT语句。SQL高级语言就像一把瑞士军刀,能让你在数据处理的世界里游刃有余。记得去年有个电商项目,团队里有个小伙子用几十行Ja…

2026/11/3 11:17:37

两轮电动车智能化转型:物联网与边缘计算实践

1. 合作背景与行业现状 两轮电动车行业正经历从传统代步工具向智能化终端转型的关键阶段。根据中国自行车协会数据显示,2022年全国电动自行车保有量已达3.5亿辆,年产量超过4000万辆。在这个万亿级市场中,智能化渗透率不足15%,存在…

2026/11/3 11:17:37

校园反诈骗系统开发:Spring Boot与Android双端架构实践

1. 项目背景与核心需求 校园诈骗案件近年来呈现高发态势,据某高校保卫处统计,2022年该校电信诈骗案件同比上升37%,单笔最高损失达8万元。这种背景下,开发校园反诈骗系统具有显著现实意义。本项目采用Spring BootAndroid双端架构&a…

2026/11/3 11:17:37

测试部门转型:从成本中心到利润中心的实践路径

1. 测试部门从成本中心到利润中心的转型契机 在传统IT组织架构中,测试部门往往被视为纯粹的成本中心——每年消耗大量人力物力进行重复性验证工作,却难以直接量化其商业价值。这种定位导致测试团队在资源分配和话语权上长期处于弱势地位。但近年来&#…

2026/11/3 11:12:37

哈希表原理与应用:从基础实现到性能优化

1. 哈希表是什么?从生活场景理解核心概念第一次听说"哈希表"这个词时,我以为是某种新型家具。直到在调试一个超时查询时,老工程师扔给我一句"用哈希表重构吧",才真正见识到这个数据结构的威力。简单来说&…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32实战:基于MAX14431数字隔离器的SPI隔离通信方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

工业SPI隔离通信设计:MAX14431BAEE+与STM32L4A6RG实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32+NRF24L01无线抢答器:硬件设计、通信协议与低功耗实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑