sudo addgroup Hadoop#添加一个hadoop组
sudo usermod -a -G hadoop larry#将当前用户加入到hadoop组
sudo gedit etc/sudoers#将hadoop组加入到sudoer
在root ALL=(ALL) ALL后 hadoop ALL=(ALL) ALL
修改hadoop目录的权限
sudo chown -R larry:hadoop /home/larry/hadoop<所有者:组 文件>
sudo chmod -R 755 /home/larry/hadoop
修改hdfs的权限
sudo bin/hadoop dfs -chmod -R 755 /
sudo bin/hadoop dfs -ls /
修改hdfs文件的所有者
sudo bin/hadoop fs -chown -R larry /
sudo bin/hadoop dfsadmin -safemode leave #解除hadoop的安全模式
hadoop fs -copyFromLocal <localsrc> URI#拷贝本地文件到hdfs
hadoop fs -cat file:///file3 /user/hadoop/file4#将路径指定文件的内容输出到stdout
hadoop fs -chgrp [-R] GROUP URI#改变文件的所属组
hadoop fs -chmod [-R] 755 URI#改变用户访问权限
hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]#修改文件的所有者
hadoop fs -copyToLocal URI localdst#拷贝hdfs文件到本地
hadoop fs -cp URI [URI …] <dest>#拷贝hdfs文件到其它目录
hadoop fs -du URI [URI …]#显示目录中所有文件的大小
hadoop fs -getmerge <src> <localdst> [addnl]#合并文件到本地目录
在IDEA中使用Java API 或者 Scala API 操作HDFS的时候,有时候会报这个错误:
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=Apache_Jerry, access=WRITE, inode="/spark":root:supergroup:drwxr-xr-x
其实就是你的用户,对所操作的文件没有相应的权限,这里报错就很明显,没有写的权限,我们在测试的时候可以使用一个简单粗暴地方法,就是将所有文件的所有权限都开放,这样你跑代码就不会出现这种错误了
切换到你的虚拟机界面
命令如下:
hadoop fs -chmod -R 777 /
//这里是所有的文件均授予777权限 也可以指定某个文件夹进行赋权
之后在web端可以看到
文章素材来源,仅做学习整理:
https://blog.csdn.net/Apache_Jerry/article/details/85139459
https://www.linuxidc.com/Linux/2012-05/60635.htm