hadoop遠程客戶端安裝配置
客戶端系統:ubuntu12.04
客戶端用戶名:mjiang
服務器用戶名:hadoop
- 下載hadoop安裝包,保證和服務器版本一致(或直接copy服務器的hadoop安裝包)
到 http://mirror.bjtu.edu.cn/apache/hadoop/common/ 下載tar.gz安裝包,解壓。
tar zxvf hadoopx.x.x.tar.gz - 配置
- 系統配置
修改 ~/.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>
- 系統配置
- 現在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系統,沒有權限引起的。
這就是權限配置不對造成的,解決方案:
- 如果是測試環境,可以取消hadoop hdfs的用戶權限檢查。打開conf/hdfs-site.xml,找到dfs.permissions屬性修改爲false(默認爲true)OK了。
- 公司級應用時權限配置:
這裏只進行簡單的權限配置,遠程用戶能正常提交運行作業即可,更加專業、高級的權限配置暫時還用不到,也沒有做過多研究。在解決權限配置問題時,我們對hadoop多用戶權限配置的問題,轉移成單純的hdfs文件的用戶權限配置問題:- 在服務器主機上添加客戶端用戶以及hadoop默認組名:
sudo /usr/sbin/groupadd supergroup
sudo /usr/sbin/useradd -e 20130630 -g supergroup -n -r mjiang - 修改hadoop集羣中hdfs文件的組權限使屬於supergroup組的所有用戶都有讀寫權限
hadoop fs -chmod 773 /
- 在服務器主機上添加客戶端用戶以及hadoop默認組名:
- 參考文章:
http://jbm3072.iteye.com/blog/1048489