Hadoop叢集中增加新節點
阿新 • • 發佈:2019-01-29
如果你的Hadoop叢集,是公用的,可能有很多其它部門的檔案都存放在上面
那麼,就一定要考慮許可權問題,給各種資料以不同的許可權
Hadoop目前的許可權,實現的比較簡單,類似於Shell的許可權,是通過操作使用者名稱來控制的
它預設的超級使用者就是你啟動Hadoop時的使用者
一般,我們所有的伺服器都預設是用root來登入的
因為,安裝Hadoop時一定要新建一個使用者來安裝,不要安裝在root下
然後,對於不同的log,再新建不同的使用者目錄來存放,如:
12345 |
hadoop fs -mkdir /user/test hadoop fs -chmod -R 700 /user |
這樣,只有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會對許可權認證做一定改進,期待……