Kerberos學習(三)
阿新 • • 發佈:2018-05-02
kerberos 安全 集群 配置 架構 繼續說一下Kerberos與Hadoop的集成。
其實這個話題在網上已經很普遍了,沒什麽太新鮮的。就是順帶說一下吧,Hadoop賬號的集成與管理。
之前已經裝了kdc和kadmin,所以接下來就需要創建hadoop相關的賬號了。
首先需要用kadmin進入kerberos管理prompt,這裏需要輸入之前創建的admin賬號的密碼。
然後就可以創建了,用 ? 可以查看允許使用的命令。比如我們創建如下賬號。
addprinc -randkey hdfs/[email protected] xst -k hdfs.keytab addprinc -randkey HTTP/[email protected] xst -k HTTP.keytab #生成了兩個賬號及其keytab,然後退出prompt回到shell。進入ktutil rkt hdfs.keytab rkt HTTP.keytab wkt hdfs.keytab 這樣就把原始的hdfs.keytab和HTTP.keytab合並成了新的hdfs.keytab
先創建與hdfs相關的賬號,最後我們是要把這些賬號創建成免密碼的keytab文件的,在Hadoop裏面,最好是把同一類服務創建成一個keytab,比如,hdfs和HTTP同屬於hadoop的HDFS服務,所以,我們先創建這兩個賬號並將這兩個賬號的信息合並到一個keytab裏面。
以此類推,可以創建yarn/[email protected],mapred/[email protected],oozie, hive...等等賬號。
然後修改hdfs-site.xml,加入
<property> <name>dfs.namenode.keytab.file</name> <value>hdfs.keytab</value> </property> <property> <name>dfs.namenode.kerberos.principal</name> <value>hdfs/[email protected]</value> </property> <property> <name>dfs.namenode.kerberos.internal.spnego.principal</name> <value>HTTP/[email protected]</value> </property> <property> <name>dfs.datanode.kerberos.principal</name> <value>hdfs/[email protected]</value> </property> <property> <name>dfs.journalnode.kerberos.principal</name> <value>hdfs/[email protected]</value> </property> <property> <name>dfs.journalnode.kerberos.internal.spnego.principal</name> <value>HTTP/[email protected]</value> </property> <property> <name>dfs.cluster.administrators</name> <value>hdfs</value> </property>
以此類推,也可以把yarn/[email protected]的keytab與HTTP的keytab合並,還有mapred賬號也可以合並,當然,前提是你需要用到spnego的http登錄認證服務,如果不需要spnego,可以不添加HTTP的賬號。至於什麽是spnego,參看解釋。
當然,前面創建賬號和合並keytab的命令,你可以寫成shell腳本讓他自動完成。
Kerberos學習(三)