hadoop遠程客戶端安裝配置、多用戶權限配置

hadoop遠程客戶端安裝配置

客戶端系統:ubuntu12.04

客戶端用戶名:mjiang

服務器用戶名:hadoop

  1. 下載hadoop安裝包,保證和服務器版本一致(或直接copy服務器的hadoop安裝包) 
    到 http://mirror.bjtu.edu.cn/apache/hadoop/common/ 下載tar.gz安裝包,解壓。
    tar zxvf hadoopx.x.x.tar.gz
  2. 配置
    • 系統配置
      修改 ~/.bashrc 文件
      添加 export PATH=/path/to/hadoop/home/:$PATH
    • hadoop配置文件修改
      在客戶端只需配置集羣namenode 和 jobtracker 的相關信息,以及java安裝目錄。即修改conf目錄下文件:
      hadoop-env.sh:
      export JAVA_HOME=/home/mjiang/hadoop_work/jrockit-jdk1.6.0_29
      core-site.xml:
      <property>
      <name>fs.default.name</name>
      <value>hdfs://master:8020</value>
      </property>
      mapred-site.xml:
      <property>
      <name>mapred.job.tracker</name>
      <value>master:8021</value>
      </property>
  3. 現在hadoop客戶端已經配置好,可以運行基本的命令如:
    hadoop fs -lsr /
    但是由於服務器端還沒有設置權限,所以向hdfs系統上傳文件等命令還不能運行。

hadoop多用戶權限配置

遠程客戶端用戶在hadoop集羣上運行程序時,可能會出現類似錯誤:

 錯誤現象:org.apache.hadoop.security.AccessControlException: Permission denied: user=mjiang, access=EXECUTE, inode="job_201111031322_0003":hadoop:supergroup:rwx-.

 原因:本地用戶想要遠程操作hadoop系統,沒有權限引起的。

這就是權限配置不對造成的,解決方案:

  1. 如果是測試環境,可以取消hadoop hdfs的用戶權限檢查。打開conf/hdfs-site.xml,找到dfs.permissions屬性修改爲false(默認爲true)OK了。
  2. 公司級應用時權限配置:
    這裏只進行簡單的權限配置,遠程用戶能正常提交運行作業即可,更加專業、高級的權限配置暫時還用不到,也沒有做過多研究。
    在解決權限配置問題時,我們對hadoop多用戶權限配置的問題,轉移成單純的hdfs文件的用戶權限配置問題:

    1. 在服務器主機上添加客戶端用戶以及hadoop默認組名:
      sudo  /usr/sbin/groupadd  supergroup
      sudo  /usr/sbin/useradd  -e 20130630   -g supergroup -n  -r mjiang 
    2. 修改hadoop集羣中hdfs文件的組權限使屬於supergroup組的所有用戶都有讀寫權限
      hadoop fs -chmod 773 /
  3. 參考文章:
    http://jbm3072.iteye.com/blog/1048489
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章