1.簡單模式
這種模式,配置簡單,使用簡單。
core-site.xml添加
<property> <name>hadoop.security.authorization</name> <value>true</value> </property> <property> <name>hadoop.security.authentication</name> <value>simple</value> </property>
hadoop.security.authentication可以不用配,默認就是simple的。
hadoop-policy.xml,是設置各種服務對應的可登陸的用戶和組,*自然是所有的,看里面的注釋就可以了,或者直接看官方文檔http://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/ServiceLevelAuth.html,里面有詳細的介紹和使用方式。
可登錄的用戶在列表里面,實際運行時,還要看用戶對各種資源的rwx權限,這個權限要用“hadoop fs”相關的命令進行設置了,和linux系統下設置文件權限是一樣的。
問題在於這種登錄,有個用戶名就可以,安全性不高啊,果然是簡單模式。實際應用時,就自己用用還是可以的,搭配下防火牆應該問題不大。但是,如果要對外提供服務啥的,這問題還是不小的,偽造個用戶名連接上服務,只要一行代碼設置環境變量就偽造好了。。。
2.kerberos認證
官方文檔先掛上http://hadoop.apache.org/docs/stable2/hadoop-project-dist/hadoop-common/SecureMode.html
core-site.xml
<property> <name>hadoop.security.authorization</name> <value>true</value> </property> <property> <name>hadoop.security.authentication</name> <value>kerberos</value> </property>
接着就是安裝kerberos,再就是一堆的配置啥的,然后,看到篇文章介紹支付寶hadoop集群使用kerberos的情況,里面所說,對於用戶權限的修改,機器的減容擴容,會造成證書要重新生成,再分發證書,重啟hadoop,而且還要考慮kerberos的宕機導致整個集群無法服務的風險,還有支付寶的那個例子,運維都難,還是不用了。。。
3.看來是要修改hadoop源碼,添加自己的驗證體系了。