Hive、Impala、Hue集成LDAP

news2025/2/20 3:22:49

1.LDAP简介

轻型目录访问协议,是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。在hadoop生态圈中,LDAP主要是用来做账号管理的。

2.LDAP安装配置

2.1 安装LDAP(以下操作都只需在主节点执行)

 yum install -y openldap-*

2.2 配置
(1)更改配置

rm -rf /var/lib/ldap/*
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap

(2)备份slapd.d文件

cp -rf /etc/openldap/slapd.d /etc/openldap/slapd.d.bak

(3)编辑slapd.conf文件

vi /etc/openldap/slapd.conf

增加以下内容

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/duaconf.schema
include /etc/openldap/schema/dyngroup.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/ppolicy.schema
include /etc/openldap/schema/collective.schema
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args

(4)更新slapd.d文件

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown -R ldap:ldap /etc/openldap/slapd.d && chmod -R 700 /etc/openldap/slapd.d

注意:在2.4以前的版本中,OpenLDAP 使用 slapd.conf 配置文件来进行服务器的配置,而2.4开始则使用 slapd.d 目录保存细分后的各种配置,这一点需要注意,其数据存储位置即目录 /etc/openldap/slapd.d 。尽管该系统的数据文件是透明格式的,还是建议使用 ldapadd, ldapdelete, ldapmodify 等命令来修改而不是直接编辑。

(5)启动ldap服务

systemctl start slapd
systemctl enable slapd

启动报错:5f30f8be config error processing cn={1}core,cn=schema,cn=config: olc…4.2"

解决方法:执行命令 rm -f /etc/openldap/slapd.d/cn=config/cn=schema/cn={1}core.ldif,可能会提示多个,均将提示的文件删除。

ps aux | grep slapd

在这里插入图片描述

netstat -tunlp  | grep :389

在这里插入图片描述

2.3 创建LDAP数据库
(1)查看默认配置
vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
在这里插入图片描述

(2)创建modify.ldif 文件
cd /etc/openldap/slapd.d
vi modify.ldif

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=testdomain,dc=com
 
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: uid=ldapadmin,ou=people,dc=testdomain,dc=com
 
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: esen1234
 
dn: cn=config
changetype: modify
add: olcAuthzRegexp
olcAuthzRegexp: uid=([^,]*),cn=GSSAPI,cn=auth uid=$1,ou=people,dc=testdomain,dc=com
 
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
# Everyone can read everything
olcAccess: {0}to dn.base="" by * read
# The ldapadm dn has full write access
olcAccess: {1}to * by dn="uid=ldapadmin,ou=people,dc=testdomain,dc=com" write by * read

注意:如果是pb2.12版本 olcDatabase 需依据实际情况设置,上一步所述olcDatabase={2}hdb.ldif文件不存在,存在olcDatabase={2}bdb.ldif文件,将hbd替换为bdb。注:esen1234是ldapadmin的密码,根据实际情况设置

ldapmodify -Y EXTERNAL -H ldapi:/// -f modify.ldif(导入修改)

在这里插入图片描述

(3)添加数据
vi setup.ldif

dn: dc=testdomain,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: testdomain com
dc: testdomain
 
dn: ou=people,dc=testdomain,dc=com
objectClass: organizationalUnit
ou: people
description: Users
 
dn: ou=group,dc=testdomain,dc=com
objectClass: organizationalUnit
ou: group
 
dn: uid=ldapadmin,ou=people,dc=testdomain,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: LDAP admin account
uid: ldapadmin
sn: ldapadmin
uidNumber: 1001
gidNumber: 100
homeDirectory: /home/ldap
loginShell: /bin/bash

ldapadd -x -D “uid=ldapadmin,ou=people,dc=testdomain,dc=com” -w esen1234 -f setup.ldif(导入数据)
在这里插入图片描述

2.4 安装 Migrationtools

yum install migrationtools -y
vi /usr/share/migrationtools/migrate_common.ph

修改以下内容

$DEFAULT_MAIL_DOMAIN = "testdomain.com";
$DEFAULT_BASE = "dc=testdomain,dc=com";

/usr/share/migrationtools/migrate_base.pl > /opt/base.ldif

2.5 添加ldap用户
vi /opt/adduser.sh(新增添加用户文件)

#!/bin/bash
username=$1
useradd $username
grep -E "${username}:" /etc/passwd > /opt/passwd.txt
/usr/share/migrationtools/migrate_passwd.pl /opt/passwd.txt /opt/passwd.ldif
ldapadd -x -D "uid=ldapadmin,ou=people,dc=testdomain,dc=com" -w esen1234 -f /opt/passwd.ldif
grep -E "${username}:" /etc/group > /opt/group.txt
/usr/share/migrationtools/migrate_group.pl /opt/group.txt /opt/group.ldif
ldapadd -x -D "uid=ldapadmin,ou=people,dc=testdomain,dc=com" -w esen1234 -f /opt/group.ldif
ldappasswd -x -D 'uid=ldapadmin,ou=people,dc=testdomain,dc=com' -w esen1234 "uid=${username},ou=people,dc=testdomain,dc=com" -S

sh /opt/adduser.sh ldapuser1(添加用户,下面输入密码)

New password:

Re-enter new password:

3.Hive集成LDAP

(1)HiveServer2 Authentication选用LDAP
在这里插入图片描述

(2)高级site.xml中添加以下配置

hive.server2.authentication.ldap.url=ldap://petabase.esen.com(主机名)

hive.server2.authentication.ldap.baseDN=ou=people,dc=testdomain,dc=com

保存后重启hive

(3)测试

beeline -u jdbc:hive2://petabase.esen.com:10000 -n ldapuser1 -p ldapuser1

必须输入ldap中已配置的用户名和密码才能正确连接
在这里插入图片描述
输入错误密码如下所示
在这里插入图片描述

4.Impala集成LDAP

1)配置(所有节点)

vi /etc/default/impala

IMPALA_SERVER_ARGS中增加以下内容

-enable_ldap_auth=true \
 -ldap_tls=false \
 -ldap_passwords_in_clear_ok=true \
 -ldap_uri=ldap://petabase.esen.com \
 -ldap_baseDN=ou=people,dc=testdomain,dc=com \

(2)重启impala服务

systemctl restart impala-catalog(所有节点)

systemctl restart impala-state-store(所有节点)

systemctl restart impala-server(主节点)

(3)impala-shell测试

impala-shell -u ldapuser1 -l --auth_creds_ok_in_clear(输入正确密码才可连接)

-i 集群中任意一台impalad服务器都可以

-u 登录用户

-l 使用ldap

–auth_creds_ok_in_clear 由于没有使用ssl,需要添加该参数。

在这里插入图片描述
(4)beeline测试

beeline -u jdbc:hive2://petabase.esen.com:21050 -n ldapuser1 -p ldapuser1

在这里插入图片描述

Hue集成太麻烦了,放弃。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/43195.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于PHP+MYSQL宠物领养系统的开发与设计

市面上的宠物之家网站大多只是给爱宠人士一个交流的平台,给爱宠人士一个学习宠物习性,宠物购买的一个集合性的平台。很少有宠物领养功能,然而现在社会上有着太多的流浪宠物需要得到人们的关爱,这是很多宠物之家网站没有做到的。宠物之家网站正是顺应了当下的宠物热潮,为广大消费…

LeetCode | 1851.包含每个查询的最小区间

LeetCode | 1851.包含每个查询的最小区间 给你一个二维整数数组 intervals ,其中 intervals[i] [lefti, righti] 表示第 i 个区间开始于 lefti 、结束于 righti(包含两侧取值,闭区间)。区间的 长度 定义为区间中包含的整数数目&…

基于java+ssm+shiro的出租房管理平台

✌博主介绍✌:一个致力于全战开发的代码热爱者 龙门客栈管理平台一、前言介绍:二、系统设计:2.1 系统整体架构:2.1.1 数据库表结构的介绍:2.1.2 系统功能设计:三、功能截图:3.1 登录注册:3.2 基…

使用react-grid-layout和echarts-for-react实现一个支持拖拽的自定义响应式dashboard页面

使用react-grid-layout和echarts-for-react实现一个支持拖拽的自定义响应式dashboard页面 需求概要 在前端工作中,我们会经常遇到自定义dashboard页这样的需求。然后我想做一个能够让用户可以在面板上自由的拖拽,固定(不允许拖拽&#xff0…

游戏源码编程软件,对于新手来说十分友好,纯中文的界面让所有功能都一目了然,操作相当简单

这是一款免费的图像化编程工具,使用者无需会任何编程语言即可通过拼接积木的形式搭建出属于自己的程序。 编程猫kitten使用教程: 1、打开软件,进入软件主界面,运行界面如下图。 2、点击文件,可选择打开、新建、打开本地作品等。 3、可在方框内输入作品名称,快速进行输入…

安静!听听AI眼中岛国老师的声音~

大家好,我是鸟哥。一个半路出家的程序员。 最近在折腾自己的微信机器人,除了自动回复,自动拉群等常规的功能外,我准备给它赋予一些AI功能,毕竟这两年人工智能火的一塌糊涂。例如前段时间风靡朋友圈的人物头像动漫化&am…

如何保存/同步多架构容器 Docker 镜像

前言 随着容器、芯片技术的进一步发展,以及绿色、节能、信创等方面的要求,多 CPU 架构的场景越来越常见。典型的应用场景包括: 信创:x86 服务器 鲲鹏 ARM 等信创服务器;个人电脑:苹果 Mac M1 Windows 电…

Triton Inference Server 环境配置

本人环境 Ubuntu18.04,3090显卡,显卡驱动版本510.85.02,cuda版本11.6,docker版本20.10.12(注意:docker一定要通过apt安装,用snap安装会报错) 安装步骤 1. 根据驱动版本和cuda版本下载对应版本的Triton D…

java计算机毕业设计ssm驾校预约考试管理系统a3cf7(附源码、数据库)

java计算机毕业设计ssm驾校预约考试管理系统a3cf7(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#…

第四章. Pandas进阶—日期数据处理

第四章. Pandas进阶 4.7 日期数据处理 1.DataFrame的日期数据转换(to_datetime) 在日常工作中,常见的日期方式有很多种,例如’20221123’,‘2022.11.23’,‘2022/11/23’,‘23/11/2022’&#…

Deepwalk详解

算法思想 源于word2vec ,word2vec通过语料库中的句子序列来描述词与词之间的共现关系。进而学习到词语的向量表示,deepwalk则使用图中的节点与节点的共像现关系来学习节点的向量表示。这种借鉴的前提是点在图中的分布和词在句子中的分布都是幂律分布。 …

关于MuLoginWebGL介绍说明:

WebGL就是俗称的硬件显卡型号的意思,在MuLogin中我们提供了多个平台和品牌的显卡芯片指纹。 我们在做实验时,Chrome浏览器和Internet Explorer(Edge)测试取WebGL vendor 会有两种不同值 ,Chrome 取为 Google Inc. Int…

2023年湖北监理工程师考试科目有哪些?考试题型什么样子的?

2023年湖北监理工程师考试科目有哪些?考试题型什么样子的? 一、监理工程师考试科目: 监理工程师考试一共考四科 1. 《建设工程监理基本理论和相关法规》(客观题) 2. 《建设工程合同管理》(客观题) 3. 《建设工程目标控制》(客观题) 4. 《…

社交电商时代,切勿剑走偏锋,始终以产品为中心,模式为辅助

社交电商这个名词近期十分火,参与这个方式的人数以亿计,可以这样说“十亿人民九亿商,八亿人在做电商”。 我们感悟:“传统电商火热,社交电商更火”!那么什么是社交电商呢?社交电商概念&#xff…

必须了解的海外新闻稿写作要点 ️

随着经济全球化的发展,中国企业走向世界是必然的趋势。媒介易小编发现了全球的海外消费者一般了解一个品牌都是去搜索引擎搜索,所以确认海外媒体投放新闻稿是中国企业走向世界必经之路,是密不可分的哟。 新闻稿是公司或机构向媒体发送的手稿。…

Python学习基础笔记十四——函数参数

函数参数这块在前面的博客中没有展开,现在专门整理出来: 1、参数的数量: 1)没有参数:就是定义函数和调用函数的括号中都不写内容。 2)有一个参数:可以是任何数据类型。 3)有多个参…

学习python中的数据结构

数据结构 链表和数组 数组 Python的list是由数组来实现的 有序的元素序列, 在内存中表现为一块连续的内存区域; 链表 通过指针将无序的列表链接起来, 每个节点都存储着当前节点的值和下一个节点的内存地址 链表和数组有什么区别? 实现有序的方式是不一样的, 数组是连续的内…

[附源码]SSM计算机毕业设计网上鞋店管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Pan-cancer image-based detection of clinically actionable genetic alternations

目录 摘要 前言 结果 深度学习模型优化 从组织病理图像预测泛癌基因突变 摘要 肿瘤的分子突变可导致肿瘤细胞及其微环境的表型变化。常规组织病理切片可以反映出这种形态学改变。本研究表明深度学习方法能直接从常规病理图像中推断出广泛的基因突变、肿瘤分子亚型、基因表达…

中纺集团×StarRocks:构建企业级数据资产管理的实践

中纺集团经过“十三五”信息化建设,生成了大量宝贵的数据资源,但也存在信息孤岛、系统壁垒、数据质量等问题。中纺结合企业实际需求,按照集团“十四五”信息化规划中有关数据中台的建设计划与目标要求,历经半年多的测试比选&#…