西安微信公眾號(hào)制作seo優(yōu)化快速排名
目錄
Part.01 關(guān)于HDP
Part.02 核心組件原理
Part.03 資源規(guī)劃
Part.04 基礎(chǔ)環(huán)境配置
Part.05 Yum源配置
Part.06 安裝OracleJDK
Part.07 安裝MySQL
Part.08 部署Ambari集群
Part.09 安裝OpenLDAP
Part.10 創(chuàng)建集群
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.安裝
服務(wù)端,在hdp01上安裝
yum install -y krb5-server libkadm5
客戶端,在hdp01-05上安裝(可選,后面ambari啟用kerberos的時(shí)候也會(huì)安裝)
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}
支持的加密方式務(wù)必要?jiǎng)h掉des-hmac-sha1:normal,否則后續(xù)添加hdfs等服務(wù)會(huì)報(bào)WARNING,namenode啟動(dòng)和HA時(shí)都會(huì)出現(xiàn)問題
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,給數(shù)據(jù)庫管理員admin添加ACL權(quán)限,*代表全部
*/admin@HDP315.COM *
4.創(chuàng)建數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫,其中HDP315.COM與/etc/krb5.conf對(duì)應(yīng),且需要設(shè)置管理員密碼(lnyd@LNsy115),該命令會(huì)在/var/kerberos/krb5kdc/創(chuàng)建principal數(shù)據(jù)庫。
kdb5_util create -r HDP315.COM
ll /var/kerberos/krb5kdc/
如果遇到數(shù)據(jù)庫已經(jīng)存在的提示,且需要重建數(shù)據(jù)庫時(shí),可以把/var/kerberos/krb5kdc/目錄下的principal的相關(guān)文件都刪除掉。
啟用服務(wù)
systemctl start krb5kdc
systemctl start kadmin
systemctl status krb5kdc
systemctl status kadmin
創(chuàng)建管理員admin,以及keyta文件,/var/kerberos/krb5kdc/kadm5.keytab
kdc配置文件中指定了管理員的密碼文件為kadmin5.keytab,因此新建賬號(hào)admin密碼存放在了kadmin5.keytab中,相當(dāng)于獲得了管理員身份,管理員的權(quán)限則由kadmin.acl中進(jìn)行控制。賬號(hào)需要為XXX/admin@HDP315.COM,對(duì)應(yīng)到kadmin5.acl中的格式。
kadmin.local
addprinc -pw lnyd@LNsy115 admin/admin@HDP315.COM
ktadd -k /var/kerberos/krb5kdc/kadm5.keytab -norandkey admin/admin@HDP315.COM
確認(rèn)是否可以登錄,分別用密碼和keytab兩種方式登錄
kinit admin/admin@HDP315.COM
klist
kdestroy
kinit -kt /var/kerberos/krb5kdc/kadm5.keytab admin/admin@HDP315.COM
klist
進(jìn)一步驗(yàn)證是否有管理員權(quán)限,用kadmin登錄,成功則表示權(quán)限無問題
kadmin -p admin/admin@HDP315.COM -k -t /var/kerberos/krb5kdc/kadm5.keytab
5.Abmari啟用Kerberos
(1)安裝JCE
對(duì)于Kerberos系統(tǒng)來說,默認(rèn)使用的AES-256來進(jìn)行加密。在集群?jiǎn)⒂肒erberos之前,必須在Ambari集群上的每個(gè)節(jié)點(diǎn)上都裝有JCE。
如果使用的是Oracle JDK,則必須在群集中的所有主機(jī)上分發(fā)和安裝JCE,包括Ambari Server,安裝JCE后,需要重新啟動(dòng)Ambari Server;如果使用的是OpenJDK,OpenJDK的某些發(fā)行版會(huì)自動(dòng)提供無限強(qiáng)度的JCE,因此不需要安裝JCE。
JCE與JDK版本是對(duì)應(yīng)的,需要根據(jù)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
確認(rèn)相關(guān)準(zhǔn)備工作是否完成,并勾選
安裝方式說明:
選項(xiàng) | 說明 |
---|---|
Using an existing MIT KDC | Ambari服務(wù)器和集群主機(jī)都可以通過網(wǎng)絡(luò)訪問KDC和KDC管理主機(jī)。手頭有KDC管理憑證。 |
Install a new MIT KDC | 安裝一個(gè)新的MIT KDC |
Using an existing IPA | 使用現(xiàn)有的IPA |
Using an existing AD | Ambari服務(wù)器和集群主機(jī)可以通過網(wǎng)絡(luò)訪問域控制器,并能夠解析域控制器的DNS名稱。已配置LDAP連接。服務(wù)主體的Active Directory用戶容器已經(jīng)創(chuàng)建并準(zhǔn)備就緒。例如,“OU=Hadoop,OU=People,dc=apache,dc=org”在前面提到的用戶容器上,Active Directory管理憑據(jù)具有“創(chuàng)建、刪除和管理用戶帳戶”的委托控制。 |
Using manual Kerberos setup | 集群主機(jī)可以通過網(wǎng)絡(luò)訪問KDC。每個(gè)集群主機(jī)上都安裝了Kerberos客戶端實(shí)用程序(如kinit)。已經(jīng)在Ambari服務(wù)器主機(jī)和集群中的所有主機(jī)上設(shè)置了Java加密擴(kuò)展(JCE)。在完成向?qū)е?#xff0c;Service和Ambari主體將在KDC中手動(dòng)創(chuàng)建。在完成向?qū)е?#xff0c;服務(wù)和Ambari主體的按鍵將手動(dòng)創(chuàng)建并分發(fā)到集群主機(jī)。 |
配置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
在集群?jiǎn)⒂肒erberos后,會(huì)自動(dòng)創(chuàng)建出已安裝服務(wù)(如zookeeper等)的principal,按照約定:服務(wù)賬號(hào)是principal/instance@REALM格式,用戶賬號(hào)是principal@REALM;后續(xù)所有服務(wù)的操作(安裝/卸載等),都需要用對(duì)應(yīng)的principal來進(jìn)行認(rèn)證,以增強(qiáng)安全性,keytab文件存儲(chǔ)在/etc/security/keytab/目錄下
6.確認(rèn)開啟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連接時(shí),需要以此憑證連接
7.常用指令
(1)Kerberos管理員
登錄Kerberos server
kadmin.local 用戶名
列出所有Kerberos用戶
kadmin.local -q listprincs
添加Kerberos用戶
kadmin.local -q "addprinc [options] principal"
options主要為
-randkey:隨機(jī)生成一個(gè)值作為principal的key
-pw:設(shè)置密碼,此選項(xiàng)一般用在腳本中
修改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認(rèn)證文件
kadmin.local -q "ktadd [-k[eytab] keytab] [-q] [-e keysaltlist] [-norandkey] [principal | -glob princ-exp]"
(2)Kerberos普通用戶
獲取票據(jù)credentials
klist
列出所有的Kerberos票據(jù)credentials信息
klist -k /root/tenant5.keytab
更新Kerberos票據(jù)credentials信息,更新后可以看到Expires時(shí)間發(fā)生變化
kinit -R -kt keytab principal
銷毀kerberos票據(jù)credentials
kdestroy