1. 程式人生 > >大資料開發之Hadoop篇----hdfs讀寫許可權操作

大資料開發之Hadoop篇----hdfs讀寫許可權操作

由於hdfs的結構和linux是差不多的,所以我們在hdfs的讀寫操作上也是會面臨許可權和路徑問題問題,先讓我們來看下這些都是些什麼問題。

這裡我先上傳了一個README.txt的檔案上去,通過hdfs dfs -ls /user/hadoop命令我們已經可以檢視到hdfs上有了這個檔案了,現在我們再上傳一次,看會報什麼錯誤。

這個時候就報了一個檔案以存在的錯誤給你了,而在底層的實現過程是我前幾篇博文hdfs寫流程中提到到client在使用DistributedFileSystem這個物件的create方法和NN通訊來確認你所提交的路徑是否可寫入。

現在我們切換到root使用者來使用hdfs提交作業看下會發生什麼?

我們來看下這個異常:put: Permission denied: user=root, access=WRITE, inode="/user/hadoop":hadoop:supergroup:drwxr-xr-x

提示的是Permission denied,就是許可權不夠你被拒絕了, user=root,使用的是root使用者,access=WRITE,操作是寫入。而這個hdfs歷經的提示是:inode="/user/hadoop":hadoop:supergroup:drwxr-xr-x,只用hadoop可以執行寫操作,連supergroup組和other組都只有讀和執行的許可權。

所以這個時候在生產上我們一般是這麼做的:a,切換到hadoop使用者來執行。如果你覺得每次都要這樣的話很麻煩就使用hadoop使用者幫你添加個許可權。

這就可以使用root使用者上傳檔案了。