1. 程式人生 > >Hadoop叢集中增加新節點

Hadoop叢集中增加新節點

如果你的Hadoop叢集,是公用的,可能有很多其它部門的檔案都存放在上面

那麼,就一定要考慮許可權問題,給各種資料以不同的許可權

Hadoop目前的許可權,實現的比較簡單,類似於Shell的許可權,是通過操作使用者名稱來控制的

它預設的超級使用者就是你啟動Hadoop時的使用者

一般,我們所有的伺服器都預設是用root來登入的

因為,安裝Hadoop時一定要新建一個使用者來安裝,不要安裝在root下

然後,對於不同的log,再新建不同的使用者目錄來存放,如:

12345 hadoop fs -mkdir /user/test   hadoop fs -chmod -R 700 /user
/test   hadoop fs -chown -R test:test /user/test

這樣,只有test這個使用者才能操作/user/test目錄,其它使用者都無權操作

如果,你su pplog,然後執行

1 hadoop fs -ls /user/test

你將會看到一個錯誤提示:

ls: could not get get listing for 'hdfs://zw-hadoop-master:9000/user/test' : org.apache.hadoop.security.AccessControlException: Permission denied: user=pplog, access=READ_EXECUTE, inode="test":test:test:rwx——

對於Hive來說,可以這麼來控制權限訪問

為不同日誌的MetaStore在Mysql建立不同的資料庫為不同的使用者建立單獨的conf目錄,如使用者test的hive conf目錄位於/opt/sohuhadoop/hive/conf/test下在單獨的test目錄下,修改hive-default.xml檔案,配置相應的db啟動單獨的hiveserver例項,並監聽不同的埠:HIVE_PORT=10020 nohup hive –config $HIVE_HOME/conf/test –service hiveserver &在JDBC中連線自己對應的埠,如10020

上面的許可權控制雖然有一定作用,但卻是還很弱,如果其它人知道了你的使用者名稱或者埠號

一樣可以去刪除你的檔案,據說,將來Hadoop會對許可權認證做一定改進,期待……