问题场景:
给云服务器的裸机配置环境。安装和检测hadoop的过程各种因为权限问题犯得傻。
问题描述:
- 用xshell远程连接云服务器,上传文件的时候传输失败。
- 启动hadoop后jps没有namende,datanode和secondarynode。
- 往hdfs上创建文件/user/hadoop(/user已存在)的时候出现错误:
mkdir: Permission denied: user=hdoop, access=WRITE, inode="/user":root:supergroup:drwxr-xr-x
原因分析:
- 因为除了root之外自己又建立了一个hadoop用户名叫hdoop,并且是用这个账号上传的文件,但是xshell6自带的传输工具只能往root上传输文件,所以在登陆hadoop账号的时候没办法完成传输。
- 同样hadoop的安装我都是在root上进行sudo操作完成的,所以启动hadoop后新的账号没有权限查看。
- hdoop账号没有hdfs的权限
解决方案:
- 重新建立会话登陆root账号,在root会话中进行文件传输操作。
- sudo jps查看hadoop的启动情况
(我想没有人会不给自己新建立的账号一个sudo权限的吧) - 权限管理,给hdoop一个/user文件夹的权限(在root上操作)
hadoop fs -chown -R hdoop /user