Hdoop学习笔记(HDP)-Part.11 安装Kerberos

目录
Part.01 关于HDP
Part.02 核心组件原理
Part.03 资源规划
Part.04 基础环境配置
Part.05 Yum源配置
Part.06 安装OracleJDK
Part.07 安装MySQL
Part.08 部署Ambari集群
Part.09 安装OpenLDAP
Part.10 创建集群
Part.11 安装Kerberos
Part.12 安装HDFS
Part.13 安装Ranger
Part.14 安装YARN+MR
Part.15 安装HIVE
Part.16 安装HBase
Part.17 安装Spark2
Part.18 安装Flink
Part.19 安装Kafka
Part.20 安装Flume

十一、安装Kerberos

1.安装

服务端,在hdp01上安装

yum install -y krb5-server libkadm5

客户端,在hdp01-05上安装(可选,后面ambari启用kerberos的时候也会安装)

ansible all -m yum -a 'name=krb5-workstation state=present'

2.修改krb5.conf

在hdp01上修改配置文件/etc/krb5.conf

includedir /etc/krb5.conf.d/[logging]default = FILE:/var/log/krb5libs.logkdc = FILE:/var/log/krb5kdc.logadmin_server = FILE:/var/log/kadmind.log[libdefaults]dns_lookup_realm = falseticket_lifetime = 24hrenew_lifetime = 7dforwardable = truerdns = falsepkinit_anchors = /etc/pki/tls/certs/ca-bundle.crtdefault_realm = HDP315.COMdefault_ccache_name = KEYRING:persistent:%{uid}[realms]HDP315.COM = {kdc = hdp01.hdp.comadmin_server = hdp01.hdp.com}[domain_realm].hdp315.com = HDP315.COMhdp315.com = HDP315.COM
3.修改kdc配置
修改/var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]kdc_ports = 88kdc_tcp_ports = 88[realms]HDP315.COM = {master_key_type = aes256-ctsacl_file = /var/kerberos/krb5kdc/kadm5.acldict_file = /usr/share/dict/wordsadmin_keytab = /var/kerberos/krb5kdc/kadm5.keytabsupported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-cbc-md5:normal des-cbc-crc:normal}

支持的加密方式务必要删掉des-hmac-sha1:normal,否则后续添加hdfs等服务会报WARNING,namenode启动和HA时都会出现问题
WARN security.UserGroupInformation: Not attempting to re-login since the last re-login was attempted less than 60 seconds before
server.AuthenticationFilter (AuthenticationFilter.java:doFilter(608)) - Authentication exception: GSSException: Failure unspecified at GSS-API level (Mechanism level: Encryption type DES3 CBC mode with SHA1-KD is not supported/enabled)

在这里插入图片描述
在这里插入图片描述
修改/var/kerberos/krb5kdc/kadm5.acl,给数据库管理员admin添加ACL权限,*代表全部

*/admin@HDP315.COM      *

4.创建数据库

创建数据库,其中HDP315.COM与/etc/krb5.conf对应,且需要设置管理员密码(lnyd@LNsy115),该命令会在/var/kerberos/krb5kdc/创建principal数据库。

kdb5_util create -r HDP315.COM
ll /var/kerberos/krb5kdc/

在这里插入图片描述
如果遇到数据库已经存在的提示,且需要重建数据库时,可以把/var/kerberos/krb5kdc/目录下的principal的相关文件都删除掉。
启用服务

systemctl start krb5kdc
systemctl start kadmin
systemctl status krb5kdc
systemctl status kadmin

创建管理员admin,以及keyta文件,/var/kerberos/krb5kdc/kadm5.keytab
kdc配置文件中指定了管理员的密码文件为kadmin5.keytab,因此新建账号admin密码存放在了kadmin5.keytab中,相当于获得了管理员身份,管理员的权限则由kadmin.acl中进行控制。账号需要为XXX/admin@HDP315.COM,对应到kadmin5.acl中的格式。

kadmin.local
addprinc -pw lnyd@LNsy115 admin/admin@HDP315.COM
ktadd -k /var/kerberos/krb5kdc/kadm5.keytab -norandkey admin/admin@HDP315.COM

确认是否可以登录,分别用密码和keytab两种方式登录

kinit admin/admin@HDP315.COM
klist
kdestroy
kinit -kt /var/kerberos/krb5kdc/kadm5.keytab admin/admin@HDP315.COM
klist

在这里插入图片描述
进一步验证是否有管理员权限,用kadmin登录,成功则表示权限无问题

kadmin -p admin/admin@HDP315.COM -k -t /var/kerberos/krb5kdc/kadm5.keytab

在这里插入图片描述

5.Abmari启用Kerberos

(1)安装JCE

对于Kerberos系统来说,默认使用的AES-256来进行加密。在集群启用Kerberos之前,必须在Ambari集群上的每个节点上都装有JCE。
如果使用的是Oracle JDK,则必须在群集中的所有主机上分发和安装JCE,包括Ambari Server,安装JCE后,需要重新启动Ambari Server;如果使用的是OpenJDK,OpenJDK的某些发行版会自动提供无限强度的JCE,因此不需要安装JCE。
JCE与JDK版本是对应的,需要根据JDK的版本来选择JCE版本,下载JCE的zip包并解压到$JAVA_HOME/jre/lib/security目录下。

unzip /opt/jce_policy-8.zip -d /opt/
cd /root/ansible/
ansible all -m copy -a 'src=/opt/UnlimitedJCEPolicyJDK8/local_policy.jar dest=/usr/local/jdk1.8.0_351/jre/lib/security/'
ansible all -m copy -a 'src=/opt/UnlimitedJCEPolicyJDK8/US_export_policy.jar dest=/usr/local/jdk1.8.0_351/jre/lib/security/'

重启ambari server

ambari-server restart
ambari-server status

(2)启用Kerberos

确认相关准备工作是否完成,并勾选
在这里插入图片描述
在这里插入图片描述
安装方式说明:

选项说明
Using an existing MIT KDCAmbari服务器和集群主机都可以通过网络访问KDC和KDC管理主机。手头有KDC管理凭证。
Install a new MIT KDC安装一个新的MIT KDC
Using an existing IPA使用现有的IPA
Using an existing ADAmbari服务器和集群主机可以通过网络访问域控制器,并能够解析域控制器的DNS名称。已配置LDAP连接。服务主体的Active Directory用户容器已经创建并准备就绪。例如,“OU=Hadoop,OU=People,dc=apache,dc=org”在前面提到的用户容器上,Active Directory管理凭据具有“创建、删除和管理用户帐户”的委托控制。
Using manual Kerberos setup集群主机可以通过网络访问KDC。每个集群主机上都安装了Kerberos客户端实用程序(如kinit)。已经在Ambari服务器主机和集群中的所有主机上设置了Java加密扩展(JCE)。在完成向导之前,Service和Ambari主体将在KDC中手动创建。在完成向导之前,服务和Ambari主体的按键将手动创建并分发到集群主机。

配置Kerberos信息
【KDC信息】
KDC hosts:hdp01.hdp.com
Realm name:HDP315.COM
Domains:hdp315.com
【Kadmin】
Kadmin host:hdp01.hdp.com
Admin principal:admin/admin@HDP315.COM
Admin password:lnyd@LNsy115
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在集群启用Kerberos后,会自动创建出已安装服务(如zookeeper等)的principal,按照约定:服务账号是principal/instance@REALM格式,用户账号是principal@REALM;后续所有服务的操作(安装/卸载等),都需要用对应的principal来进行认证,以增强安全性,keytab文件存储在/etc/security/keytab/目录下
在这里插入图片描述

6.确认开启kerberos后的zk配置

查看zk的server配置,/etc/zookeeper/conf/zookeeper_jaas.conf

Server {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
useTicketCache=false
keyTab="/etc/security/keytabs/zk.service.keytab"
principal="zookeeper/hdp01.hdp.com@HDP315.COM";
};

配置中指定了连接ZooKeeper的principal和keytab要求,因此后面再用客户端zkCLi连接时,需要以此凭证连接

7.常用指令

(1)Kerberos管理员

登录Kerberos server

kadmin.local 用户名

列出所有Kerberos用户

kadmin.local -q listprincs

添加Kerberos用户

kadmin.local -q "addprinc [options] principal"

options主要为
-randkey:随机生成一个值作为principal的key
-pw:设置密码,此选项一般用在脚本中
修改Principal用户信息

kadmin.local -q "modprinc [options] principal"

修改Principal密码

kadmin.local -q "change_password [-randkey] [-keepold] [-e keysaltlist] [-pw password] principal"

删除Principal信息

kadmin.local -q "delete_principal [-force] principal"

生成keytab认证文件

kadmin.local -q "ktadd [-k[eytab] keytab] [-q] [-e keysaltlist] [-norandkey] [principal | -glob princ-exp]"

(2)Kerberos普通用户

获取票据credentials

klist

在这里插入图片描述
列出所有的Kerberos票据credentials信息

klist -k /root/tenant5.keytab

在这里插入图片描述
更新Kerberos票据credentials信息,更新后可以看到Expires时间发生变化

kinit -R -kt keytab principal

在这里插入图片描述
销毁kerberos票据credentials

kdestroy

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

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

相关文章

python爬虫抓取网页图片教程

在Python中,你可以使用requests库来发送HTTP请求,以及BeautifulSoup或Scrapy库来解析网页内容。你也可以使用selenium库,它是一个自动化测试工具,用于模拟用户在浏览器中的操作。 下面是一个简单的例子,说明如何使用r…

ASP.NET Core 使用IIS调试出现505.24错误

最近一直再学习asp.net 相关的东西&#xff0c;主要是为前端app提供一个webapi接口。在使用iis调试程序时出现HTTP Error 500.24 - Internal Server Error错误&#xff0c;搞了好久才最终解决。 1.在项目中增加web.config配置文件 2.将配置文件改为如下内容 <?xml version…

C++模版

文章目录 C模版1、泛型编程2、函数模版2.1、函数模版概念2.2、函数模版格式2.3、函数模版原理2.4、函数模版的实例化2.5、模板参数的匹配原则 3、类模版3.1、类模版概念3.2、类模版格式3.3、类模板的实例化 C模版 1、泛型编程 泛型编程&#xff08;Generic Programming&#x…

003、应用程序框架-UIAbility

之——UIAbility 目录 之——UIAbility 杂谈 正文 1.UIAbility 2.基本使用 2.1 创建Ability工程 2.2 添加基础功能 2.3 新建页面 2.4 页面间的跳转 3.生命周期 总结 杂谈 UIAbility&#xff0c;其中的页面创建、页面间的跳转、数据传递、生命周期。 正文 1.UIAbil…

【数据结构】环形队列

环形队列 1. 定义 环形队列就是将队列在逻辑上看作环形结构、物理上仍是数组形式存储的一种数据结构。 其实现主要分为两种情况&#xff1a; 浪费空间法记录空间法 2. 实现 实现要考虑的是成员变量 2.1 记录空间法 使用used标识当前存储了多少元素&#xff0c;如果为空&a…

【0240】源码分析PG内核中的关键字列表(SQL keywords)

相关文章: 【0236】聊一聊PG内核中的命令标签(Command Tags、CommandTag、tag_behavior) 【0239】从编译原理角度理解 #include “xxx“ 或 #include<xxx> 的实现机制 1. PostgreSQL的SQL关键字列表(SQL Keywords) 1.1 keywords.c源文件内容 keywords.c源文件中的内容…

03.PostgreSQL常用索引与优化

PostgreSQL常用索引与优化 主要内容转载自《PostgreSQL 开发指南》 索引&#xff08;Index&#xff09;可以用于提高数据库的查询性能&#xff1b;但是索引也需要进行读写&#xff0c;同时还会占用更多的存储空间&#xff1b;因此了解并适当利用索引对于数据库的优化至关重要。…

基于ASP.NET MVC技术的图书管理系统的设计与实现

基于ASP.NET MVC技术的图书管理系统的设计与实现 摘要&#xff1a;图书管理系统是一套高新科学技术和图书知识信息以及传统历史文化完美结合的体现。它改变了传统图书收藏的静态书本式图书服务特征&#xff0c;实现了多媒体存取、远程网络传输、智能化检索、跨库无缝链接、创造…

type-c充电器输出电压5V9V12V15V20V PD协议诱骗快充应用方案

Type-C接口的PD充电器&#xff08;如iPhone的20W充电器&#xff09;默认是没有电压输出的&#xff0c;想要让Type-C的充电器输出5V、9V、12V、15V、20V&#xff0c;只需要在产品上使用一颗快充取电芯片XSP08即可。 工作原理&#xff1a; 各类小家电产品如平板电脑、智能穿戴产…

服务器感染了.mallox勒索病毒,如何确保数据文件完整恢复?

尊敬的读者&#xff1a; 随着数字化时代的不断发展&#xff0c;网络安全问题变得日益突出。近日&#xff0c;一种新的威胁——.mallox病毒&#xff0c;以其高度狡猾的勒索手段引起了广泛关注。本文将深入介绍.mallox病毒的威胁、如何应对被其感染的情况&#xff0c;以及如何通…

私有化外卖软件:打造专属美食配送体验

随着互联网的普及和人们生活节奏的加快&#xff0c;外卖已经成为人们日常生活的一部分。为了满足客户的个性化需求&#xff0c;我们开发了一款私有化外卖软件&#xff0c;旨在为您提供专属的美食配送服务。 一、定制化服务&#xff1a;满足您的独特需求 我们的私有化外卖软件可…

什么是Ros(二)- 结构和通讯概述

目录 1.架构 2.通讯 参考文献 上接&#xff1a;什么是Ros&#xff08;一&#xff09;-CSDN博客 1.架构 共三层&#xff1a;OS 层&#xff0c;中间层&#xff0c;应用层。 OS 层&#xff1a;OS 层是操作系统层也就是我们现在使用的ubuntu&#xff08;linux&#xff09;&…

win10下在Qt中使用VTK(安装VS2017+安装QT5.9.9+编译配置VTK8.2.0)

目录 前言一、安装Visual Studio20171&#xff09;官网下载可执行的安装程序2&#xff09;安装3&#xff09;启动 二、安装Qt 5.9.91&#xff09;下载可执行的安装程序2&#xff09;安装3&#xff09;配置环境变量 三、安装Cmake1&#xff09;下载可执行的安装程序2&#xff09…

【深度优先】LeetCode1932:合并多棵二叉搜索树

作者推荐 动态规划LeetCode2552&#xff1a;优化了6版的1324模式 题目 给你 n 个 二叉搜索树的根节点 &#xff0c;存储在数组 trees 中&#xff08;下标从 0 开始&#xff09;&#xff0c;对应 n 棵不同的二叉搜索树。trees 中的每棵二叉搜索树 最多有 3 个节点 &#xff0…

令人疑惑的Promise相关问题

令人疑惑的Promise相关问题 问题1 const promise new Promise((resolve, reject) > {reject(Error(Error occurred)); });promise.catch(error > console.log(error.message)); promise.catch(error > console.log(error.message));输出&#xff1a; Error occurr…

AWS中使用ECS时ecsTaskExecutionRole缺失

文章目录 问题解决参考 问题 在AWS中使用Amazon Elastic Container Service (Amazon ECS) 创建集群&#xff0c;任务&#xff0c;服务和容器时返回ecsTaskExecutionRole的问题&#xff0c;进行解决。 在事件中查看具体报错如下&#xff1a; service Windows-test failed to l…

一种excel多线程并发写sheet的方案

一、背景 有一次项目的需求要求导出excel&#xff0c;并且将不同的数据分别写到不同的sheet中。 二、 方案概述 首先一开始使用easyexcel去导出excel&#xff0c;结果发现导出时间需要3秒左右。于是想着能不能缩短excel导出时间&#xff0c;于是第一次尝试使用异步线程去查询数…

人工智能原理复习--确定性推理

文章目录 上一篇推理概述自然演绎推理合适公式 归结演绎推理归结原理归结反演 提升归结效率下一篇 上一篇 人工智能原理复习–知识表示&#xff08;二&#xff09; 推理概述 推理就是按某种策略由已知判断推出另一判断的思维过程 分类&#xff1a; 演绎推理、归纳推理、默…

什么是GRS认证?什么让它这么火?

【什么是GRS认证&#xff1f;什么让它这么火&#xff1f;】 对于外贸公司而言&#xff0c;GRS&#xff08;Global Recycled Standard&#xff09;认证成为了一个备受关注的认证标准&#xff0c;它对于现代企业来说具有重要的意义。GRS认证是针对纺织品行业的认证标准&#xff0…

kafka 集群 ZooKeeper 模式搭建

Apache Kafka是一个开源分布式事件流平台&#xff0c;被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序 Kafka 官网&#xff1a;Apache Kafka 关于ZooKeeper的弃用 根据 Kafka官网信息&#xff0c;随着Apache Kafka 3.5版本的发布&#xff0c;Zookeeper现…