This Article helps setting up Kerberos for HBase on CDH Clusters.
Cloudera Manager and CDH installed and running.
MIT Kerberos server installed and operational.
Administrator access to Kerberos KDC, Cloudera Manager, and cluster nodes.
Install Kerberos packages on KDC host:
yum install krb5-server krb5-libs krb5-auth-dialog krb5-workstation
Edit /etc/krb5.conf
:
[libdefaults] default_realm = YOUR.REALM.COM dns_lookup_realm = false dns_lookup_kdc = false [realms] YOUR.REALM.COM = { kdc = kerberos-server.yourdomain.com admin_server = kerberos-server.yourdomain.com } [domain_realm] .yourdomain.com = YOUR.REALM.COM yourdomain.com = YOUR.REALM.COM
Edit /var/kerberos/krb5kdc/kdc.conf
:
[kdcdefaults] kdc_ports = 88 kdc_tcp_ports = 88 [realms] YOUR.REALM.COM = { database_name = /var/kerberos/krb5kdc/principal admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab acl_file = /var/kerberos/krb5kdc/kadm5.acl dict_file = /usr/share/dict/words max_life = 10h max_renewable_life = 7d }
Create Kerberos database:
kdb5_util create -s
Start and enable Kerberos services:
systemctl enable krb5kdc
systemctl enable kadmin
systemctl start krb5kdc
systemctl start kadmin
Log in to Kerberos admin interface:
kadmin.local
Create principals:
addprinc -randkey hbase/_HOST@YOUR.REALM.COM
addprinc -randkey hdfs/_HOST@YOUR.REALM.COM
addprinc -randkey HTTP/_HOST@YOUR.REALM.COM
addprinc -randkey zookeeper/_HOST@YOUR.REALM.COM
Generate keytabs:
xst -k hbase.keytab hbase/_HOST@YOUR.REALM.COM
xst -k hdfs.keytab hdfs/_HOST@YOUR.REALM.COM
xst -k http.keytab HTTP/_HOST@YOUR.REALM.COM
xst -k zk.keytab zookeeper/_HOST@YOUR.REALM.COM
Securely copy keytabs to cluster nodes:
scp *.keytab user@node:/etc/security/keytabs/
Set permissions on nodes:
chown root:hadoop /etc/security/keytabs/*.keytab
chmod 440 /etc/security/keytabs/*.keytab
In Cloudera Manager UI, go to Administration → Security → Kerberos and enable Kerberos authentication. Enter the required KDC details and let Cloudera Manager deploy keytabs automatically.
In Cloudera Manager, configure HBase to use Kerberos by setting:
hbase.regionserver.kerberos.principal = hbase/_HOST@YOUR.REALM.COM
hbase.regionserver.keytab.file = /etc/security/keytabs/hbase.keytab
hbase.master.kerberos.principal = hbase/_HOST@YOUR.REALM.COM
hbase.master.keytab.file = /etc/security/keytabs/hbase.keytab
Authenticate using Kerberos principal:
kinit -kt /etc/security/keytabs/hbase.keytab hbase/<host>@YOUR.REALM.COM
Check your Kerberos ticket:
klist
Launch HBase shell and validate connectivity:
hbase shell
status
list
Check logs at /var/log/hbase/
for any Kerberos-related issues.
Ensure time synchronization, DNS resolution, and principal/keytab configurations are correct.
Enable TLS/SSL for Hadoop/HBase communication, regularly rotate Kerberos keys, and monitor audit logs for security compliance.