1.环境(希望大数据工作者 纠正 评论 一起学习 进步)
CDH 安装完毕 freeipa安装完毕 hosts都做了解析,CDH机器所在的dns解析都要修改为freeipa为第一个
2.CDH节点安装kerberos客户端
yum -y install ipa-client
ipa-client-install --domain=baidu.com --no-ntp --realm=BAIDU.COM -mkhomedir
![1616641293953680.png image.png]()
![1616641431626927.png image.png]()
3.查看freeipa节点
![1616641509599575.png image.png]()
4.krb5.conf
还要 添加此行
renew_lifetime = 7d
![1616641678783392.png image.png]()
5.freeipa添加用户(添加cloudera-scm用于CDH的大数据认证)
![1616642367333358.png 1.png]()
![1616642378328514.png 2.png]()
![1616642386484558.png 3.png]()
![1616642394621090.png 4.png]()
![1616642400296776.png 5.png]()
6.生成cloudera-scm用户的keytab(在freeipa机器生成 准备拷贝到CDH的master节点需要用)
![1616652492178644.png image.png]()
![1616642582627200.png image.png]()
7.CDH master节点
###需要将第6步骤 生成的 cloudera-scm.keytab 放在当前目录 (/opt/cloudera/freeipa)
mkdir -p /opt/cloudera/freeipa
cd /opt/cloudera/freeipa
vim getkeytabs.sh
#set -e
set -x
CMKEYTAB="/opt/cloudera/freeipa/cloudera-scm.keytab"
CMUSER="cloudera-scm"
REALM="BAIDU.COM"
IPASERVER="www.baidu.com"
DEST="$1"
FULLPRINC="$2"
# Passwd based kinit
#echo PASSWORD | kinit $CMUSER@$REALM
# Or per keytab (keytab needs to be generated before)
kinit -k -t $CMKEYTAB $CMUSER@$REALM
PRINC=$( echo $FULLPRINC | sed "s/\@$( echo $REALM )//" )
echo $PRINC
echo Retrieving keytab for $FULLPRINC for $DEST
echo Checking for existing service principle
if ipa service-find $FULLPRINC; then
echo Service principle found
else
echo Service principle not created, creating
ipa service-add $FULLPRINC --pac-type=NONE
fi
echo Ensuring service allows
ipa service-allow-create-keytab --users=$CMUSER $FULLPRINC
ipa service-allow-retrieve-keytab --users=$CMUSER $FULLPRINC
if ipa service-show $FULLPRINC | grep 'Keytab' | grep 'False'; then
echo Creating keytab for $FULLPRINC for $DEST
ipa-getkeytab -s $IPASERVER -p $PRINC -k $DEST -e rc4-hmac,aes256-cts,aes128-cts
else
echo Retrieving keytab for $FULLPRINC for $DEST
ipa-getkeytab -r -s $IPASERVER -p $PRINC -k $DEST
fi
chmod 600 $DEST
kdestroy
exit 0;
![1616654087704464.png image.png]()
上述文件的权限需要注意 否则kerberos集成会失败
CDH使用freeipa 根据官网得知道需要做一个sed 命令 如下 不然无法集成
https://docs.cloudera.com/documentation/director/latest/topics/director_create_kerberized_cluster.html
sed -i '/kinit/i exit 0' /opt/cloudera/cm/bin/import_credentials.sh
![1616642831579406.png image.png]()
![1616653978740800.png 10.png]()
![1616653986748096.png 11.png]()
![1616654275550251.png 12.png]()
![1616654282836867.png 13.png]()
![1616654291410063.png 14.png]()
![1616654299683999.png 15.png]()
![1616654305303592.png 16.png]()
![1616654388228449.png 16.png]()
![1616654399611788.png 17.png]()
![1616654408153198.png 18.png]()
![1616654415384365.png 19.png]()
![1616654647666346.png 20.png]()
CDH 启用freeipa 也就是kerberos以后发现sentry无法启动 类似数据scherma的报错
解决办法
![1616659589555515.png image.png]()
![1616659613918029.png image.png]()
HUE集成sentry
![1616669064801403.png hue_1.png]()
![1616669073393307.png hue_2.png]()
![1616669080930190.png hue_3.png]()
![1616669086711995.png hue_4.png]()
![1616669092841262.png hue_5.png]()
![1616669101583045.png hue_6.png]()