hadoop hdfs访问权限更新延迟问题
最近我遇到過一次solr的文件權(quán)限問題,導(dǎo)致索引崩潰。同事也遇到一次FS的類似現(xiàn)象問題。多次經(jīng)歷發(fā)現(xiàn)hadoop目前對目錄的權(quán)限管理有同步問題。
正常情況下,以某個用戶啟動,則目錄權(quán)限會變成該用戶。至于用戶所在的組,可以直接忽略,沒有看到用處。但是有時候會出現(xiàn)這樣的情形。明明運行程序是超級用戶,也就是缺省使用hdfs用戶(如果有設(shè)置缺省),但是可以訪問solr, 權(quán)限的目錄,而且一直穩(wěn)定運行。
?
但是某一天,也許你忽然想改變一些配置。重啟了一些應(yīng)用。也許就忽然它就權(quán)限變更了。除非你用正確的用戶啟動,并修正權(quán)限所帶來的問題,否則就不能訪問。經(jīng)歷過兩次,一次是cloudear solr(solrcloud)的問題。另外一次是hdfs的一個擴展應(yīng)用程序,文件系統(tǒng)時遇到。都是開始能用,在進行目錄清理,或者是配置變更,重啟某些應(yīng)用后忽然就不能用了。象是延遲發(fā)作的地雷。延時爆炸的雷。
?
仔細想了一下hadoop整個兒的機制,hdfs系統(tǒng)的機制,還有l(wèi)inux文件系統(tǒng)管理機制。 最后想,可能是這個原因。?
?
hdfs 文件系統(tǒng),主要是nameserver, 它在管理權(quán)限時并不會立即生效,除非你手機用chmod改權(quán)限。它有一個更新數(shù)據(jù)的觸發(fā)條件。在此之前,所有文件都是可以跨權(quán)限訪問的。而且它也允許這么 做。這是因為避免過快的同步,提高文件系統(tǒng)的管理效率。也減少了同步造成的一系列問題。嚴格的說,它的權(quán)限同步是“人為手工”觸發(fā)的。除非你明確的說,我需要僅限變更,否則它不更新。
?
這樣以來,所有已啟動的進程,所有namenode里已經(jīng)在活動狀態(tài)的文件,都可以跨權(quán)限訪問了。 但是在偶爾的情況下,它會觸發(fā)權(quán)限同步,造成后來的應(yīng)用忽然就不能訪問,顯示為目錄無權(quán)限。
?
此時需要手工更新所有的目錄權(quán)限,建議同時重新啟動所有服務(wù)節(jié)點,所有相關(guān)應(yīng)用。
轉(zhuǎn)載于:https://blog.51cto.com/wisyou/1626406
總結(jié)
以上是生活随笔為你收集整理的hadoop hdfs访问权限更新延迟问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux-telnet服务配置
- 下一篇: Java Web整合开发(26) --