博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Hadoop多用户配置

Posted on 2017-03-07 15:44  来碗酸梅汤  阅读(1456)  评论(0编辑  收藏  举报

Hadoop多用户配置的目的就是多个hadoop用户可以共同使用HDFS,但是只能操作属于自己的空间,不能跨用户空间操作(当然/tmp是属于大家的,任何用户都会对这个文件夹有写操作)。 
Hadoop多用户配置,相当于给每个用户一个hadoop客户端,每个用户都可以使用hadoop的命令操作属于自己的HDFS空间。 

本地集群中的一台机器hadoop-master2中已经存在一个用户hadoop,现在增加一个用户hong,并且之前的hadoop用户下已经部署好hadoop集群

1、在root用户下增加用户,并设置密码

[root@hadoop-master2 ~]# adduser hong
[root@hadoop-master2 ~]# passwd hong

2、在hadoop用户下将hadoop传到hong用户下:

[hadoop@hadoop-master2 RoilandGroup]$ scp -r hadoop-2.6.0 hong@hadoop-master2:~/

3、在hong用户下配置$HADOOP_HOME,PATH变量

vi ~/.bash_profile

export HADOOP_HOME=/usr/local/RoilandGroup/hadoop-2.6.0 export SPARK_HOME=/usr/local/RoilandGroup/spark export PATH=$PATH:$HADOOP_HOME/bin:$SPARK_HOME/bin

source ~/.bash_profile

4、传输完成后可能会有权限改变的情况,比如hadoop命令不能用等等,这时需要改变一下权限:

chmod -R 775 $HADOOP_HOME

5、进入hadoop用户,对HDFS增加hadoop用户目录:

HDFS的创建的缺省文件是默认是在/user文件夹下的,比如hadoop用户使用hadoop fs -mkdir test ,其实就是创建了一个/user/tseg/test的文件夹。 
所以在此应该先建立属于hong用户的HDFS用户目录:/user/hong

hadoop fs -mkdir /user/hong
hadoop fs -chown hong /user/hong //将文件夹的owner设为another
hadoop fs -chgrp hong /user/hong //将文件夹的group设为another

这是因为Hadoop认为谁启动了hadoop谁就是超级hadoop用户。

 6、在hadoop用户下改变/tmp文件夹权限。

因为不管哪个用户都会对/tmp文件夹有写操作,所以必须要改变/tmp的权限:

hadoop fs -chmod -R 777 /tmp

 

7、在hadoop超级用户hadoop下重启hadoop

stop-all.sh
start-all.sh

 

8、在hong用户运行wordcount

[hong@hadoop-master2 data]$ vi test.txt
[hong@hadoop-master2 data]$ hadoop fs -put test.txt test
[hong@hadoop-master2 data]$ hadoop jar /usr/local/RoilandGroup/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount test output

 

结果