今天在配置hadoop到時候,發現無法修改hadoop-‐env.sh,即使使用指令:
sudo gedit hadoop-env.sh
也是無法修改。後來想想可能是我前面設定了hadoop檔案目錄權限到緣故,其指令:
sudo chown -R hadoop:hadoop hadoop-0.20.1/
是以使用檢視檔案權限指令:
ls -all
檢視hadoop-env.sh檔案到權限,得到結果如下:
-rw-rw-r-- 1 hadoop hadoop 2245 2010-12-09 00:15 hadoop-env.sh
第一個"-"表示這是一個檔案,後面9個字元"rw-rw-r--" 則是權限資訊,3個字母一組,這三個字母分别是rwx,-表示沒有此項權限,,第一組rw- 表示所有者的權限,第二組rw- 表示和所有者同一工作組group的使用者的權限,第三組r--表示和所有者不一個工作組的使用者的權限;緊接着的1是連接配接數;2個hadoop分别是所有者和所有者所在工作組。
可以看到hadoop作為所有者的權限是rw-,可讀可寫不能執行;在hadoop工作組的其他使用者的權限rw-,可讀可寫不能執行;其他工作組使用者為r--,隻讀。
這也是為什麼為使用管理者使用者xuwei不能修改hadoop-env.sh檔案到緣故了,因為xuwei使用者沒有在hadoop這個group裡面。使用如下指令切換到hadoop使用者。
su hadoop
切換到了hadoop使用者下面使用
sudo gedit hadoop-env.sh
但是出現了" hadoop is not in the sudoers file"錯誤。
解決方法見上一篇部落格
在成功解決上述問題以後,使用指令:
sudo chmod +x hadoop-env.sh
這樣就能對這個檔案進行編輯和修改了。
到此問題解決。
本文轉自xwdreamer部落格園部落格,原文連結:http://www.cnblogs.com/xwdreamer/archive/2010/12/09/2297059.html,如需轉載請自行聯系原作者