首页 > 其他分享 >离线数仓之Kerberos基本使用及问题记录

离线数仓之Kerberos基本使用及问题记录

时间:2023-03-09 12:32:10浏览次数:117  
标签:数仓 daemon node01 -- Kerberos 离线 start root

离线数仓之Kerberos基本使用及问题记录


0. 写在前面

  • Kerberos环境:已搭建好Kerberos并配置完成
  • 执行用户:root
  • Linux:CentOS7.5
  • Hadoop:Hadoop3.1.3
  • Hive:Hive3.1.2
  • Krberos:Kerberos5

集群规划:

  • node01:NN、DN、historyserver、Hive、Kerberos服务端、Kerberos客户端
  • node02:NM、RM、Kerberos客户端
  • node03:DN、2NN、Kerberos客户端

1. Kerberos基本使用

0. 启动Kerberos相关服务

在主节点(node01)启动KDC,并配置开机自启

[root@node01 ~]# systemctl start krb5kdc
[root@node01 ~]# systemctl enable krb5kdc

1. 安全模式下启动Hadoop集群

启动HDFS

# 启动NameNode
[root@root ~]# sudo -i -u hdfs hdfs --daemon start namenode
# 启动DataNode
[root@node01 ~]# sudo -i -u hdfs hdfs --daemon start datanode
[root@node01 ~]# sudo -i -u hdfs hdfs --daemon start datanode
[root@node01 ~]# sudo -i -u hdfs hdfs --daemon start datanode
# 启动SecondaryNameNode
[root@node01 ~]# sudo -i -u hdfs hdfs --daemon start secondarynamenode

启动Yarn

# 启动ResourceManager
[root@node02 ~]# sudo -i -u yarn yarn --daemon start resourcemanager
# 启动NodeManager
[root@node01 ~]# sudo -i -u yarn yarn --daemon start nodemanager
[root@node02 ~]# sudo -i -u yarn yarn --daemon start nodemanager
[root@node03 ~]# sudo -i -u yarn yarn --daemon start nodemanager

启动HistoryServer

# 启动历史服务器
[root@node01 ~]# sudo -i -u mapred mapred --daemon start historyserver

2. 安装Kerberos客户端访问HDFS页面

0. Windows下安装MIT Kerberos Ticket Manager

一路next即可,安装后会提醒是否立即​​重启电脑​

有遇到过没有提醒直接重启电脑的,为了保险起见,建议安装之前先将集群的各个服务停止,关闭虚拟机

1. 使用「MIT Kerberos Ticket Manager」

  • 编辑C:\ProgramData\MIT\Kerberos5\krb5.ini文件
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
forwardable = true
rdns = false
default_realm = EXAMPLE.COM

[realms]
EXAMPLE.COM = {
kdc = node01
admin_server = node01
}

[domain_realm]

2. 配置火狐浏览器

  • 在地址栏输入“about:config”,直接Enter,选择接受风险并继续

离线数仓之Kerberos基本使用及问题记录_hdfs

  • 直接搜索“network.negotiate-auth.trusted-uris”,修改值为要访问的主机名(node01)

离线数仓之Kerberos基本使用及问题记录_数据仓库_02

  • 搜索“network.auth.use-sspi”,双击将值变为false

离线数仓之Kerberos基本使用及问题记录_hdfs_03

  • 重启火狐浏览器

3. 认证

  • 启动Kerberos客户端,点击Get Ticket,输入主体名Principal以及密码Password
  • 火狐浏览器访问:
https://node01:9871/
  • 选择browse the file system,输入主体名Principal以及密码Password,即可访问文件

离线数仓之Kerberos基本使用及问题记录_数据仓库_04

3. Web端依旧没有权限访问文件及报错解决

火狐浏览器输入主体名及密码,出现以下错误:

Ticket initialization failed. Kerberos 5: client not found in Kerberos database(error:1765328378)

离线数仓之Kerberos基本使用及问题记录_权限管理_05

我查找了很久,还是没有找到这个错误的解决方法。因为我的配置是没有问题的,所以猜想会不会是浏览器的问题,没想到,​​重启火狐浏览器,再次访问HDFS​​真的就可以有权限访问文件了

​重启​​万岁

离线数仓之Kerberos基本使用及问题记录_hdfs_06

4. Hive Kerberos认证使用之DataGrip客户端

0. 前置芝士

因为Apache Hive使用的驱动是原生自带的Hive驱动,但是这个自带的Hive驱动不支持Kerberos认证。所以连接不上之前数仓分层时在DataGrip创建的Hive数据源。

离线数仓之Kerberos基本使用及问题记录_数据仓库_07


离线数仓之Kerberos基本使用及问题记录_权限管理_08

1. 新建driver

离线数仓之Kerberos基本使用及问题记录_数据仓库_09

2. 配置Driver

离线数仓之Kerberos基本使用及问题记录_数据仓库_10

3. 新建连接

离线数仓之Kerberos基本使用及问题记录_Hive_11

4. 配置连接

  • 基础配置

离线数仓之Kerberos基本使用及问题记录_hdfs_12

jdbc:hive2://node01:10000/;principal=hive/[email protected]
  • 高级配置

离线数仓之Kerberos基本使用及问题记录_hdfs_13

  • 配置参数:
-Djava.security.krb5.conf="C:\\ProgramData\\MIT\\Kerberos5\\krb5.ini"
-Djava.security.auth.login.config="C:\\ProgramData\\MIT\\Kerberos5\\atguigu.conf"
-Djavax.security.auth.useSubjectCredsOnly=false

5. 编写JAAS(Java认证授权服务)配置文件

com.sun.security.jgss.initiate{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
useTicketCache=false
keyTab="C:\\ProgramData\\MIT\\Kerberos5\\atguigu.keytab"
principal="[email protected]";
};

6. 为用户生成keytab文件,在krb5kdc所在节点(node01)执行以下命令

[root@hadooop102]# kadmin.local -q"xst -norandkey -k /home/atguigu/atguigu.keytab atguigu"

7. 传输atguigu.keytab文件

将上一步生成的​​atguigu.keytab​​文件,置于Windows中的特定路径,该路径须与5中的keyTab属性的值​​保持一致​​。

XFTP传输atguigu.keytab若不成功,将其​​chmod 777​

8. 测试连接失败

  • 报错信息

离线数仓之Kerberos基本使用及问题记录_数据仓库_14

  • 原因分析

​jdbc:hive2://node01:10000/;principal=hive/[email protected]​最后多了一个空格或者直接删掉DataGrip中的url,重新复制上文中的「4. 配置连接」的url

离线数仓之Kerberos基本使用及问题记录_Kerberos_15

顺利完成

标签:数仓,daemon,node01,--,Kerberos,离线,start,root
From: https://blog.51cto.com/shadowlim/6109804

相关文章

  • bucket表:数仓存算分离中CU与DN解绑的关键
    摘要:Bucket存储是数据共享中重要的一环,当前阶段,bucket存储可以将列存中的CU数据和DN节点解绑。本文分享自华为云社区《存算分离之bucket表——【玩转PB级数仓GaussDB(DWS)......
  • Centos7 离线安装 MySQL 8.0.32
    1官网下载mysql离线rpm包下载地址:https://dev.mysql.com/downloads/mysql/2将下载的tar包上传到/opt/rpm/mysql目录 3删除CentOS自带的mariadb 说明:不删的话my......
  • 离线安装openssl
    1、下载下载地址:https://www.openssl.org/source/old/1.0.2/  2、安装#解压$tar-zxvfopenssl-1.1.1g.tar.gz$cdopenssl-1.1.1g#添加openssl配置$.......
  • 实际应用中的数仓分层
    1、实际应用中的数仓分层一般采用四层分层法  数据层具体实现01、数据源层ODS  数据源层主要将各个业务数据导入到大数据平台,作为业务数据的快照存储。02、数......
  • centos7离线部署ansible并通过ansible批量修改用户密码
    centos7离线部署ansible并通过ansible批量修改用户密码找台可以联网的机器下载好程序包,上传到对应主机mkdir/app/ansible-p#下载bzip2yuminstall-ybzip2--downlo......
  • 离线yum实施部署
    明确版本后在网上找到对应的镜像全量包http://mirrors.huaweicloud.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.isocat/etc/rel将镜像上传至服务器上面......
  • Linux离线安装mysql5.7
    下载mysql:https://dev.mysql.com/downloads/mysql/5.7.html#downloads  切换到root用户解压mysql压缩包tar-zxvfmysql-5.7.24-linux-glibc2.12-x86_64.tar.......
  • docker学习笔记1(在线安装及离线安装)
    Centos7安装docker引擎官方安装文档https://docs.docker.com/engine/install/centos/#install-using-the-repositoryDocker分两个大版本,一个是CE,一个是EE。CE为社区版,......
  • sublime 3 离线安装xml、json格式化插件
    sublime3离线安装xml、json格式化插件插件地址: https://shanle.lanzout.com/iVwrZ0p1pqdg下载后:preference--browsePackage-丢到弹出的文件夹里使用:slection-f......
  • []Linux 离线升级Openssh与Openssl版本
    https://blog.csdn.net/qq_45728838/article/details/120825845离线的意思是为Linux无法链接网络,只能通过windows将文件上传一、首先准备软件Xshell与Xftp我们个人使用......