大数据开发之Hadoop篇----hdfs读写权限操作

由于hdfs的结构和linux是差不多的,所以我们在hdfs的读写操作上也是会面临权限和路径问题问题,先让我们来看下这些都是些什么问题。

大数据开发之Hadoop篇----hdfs读写权限操作_第1张图片

这里我先上传了一个README.txt的文件上去,通过hdfs dfs -ls /user/hadoop命令我们已经可以查看到hdfs上有了这个文件了,现在我们再上传一次,看会报什么错误。

这个时候就报了一个文件以存在的错误给你了,而在底层的实现过程是我前几篇博文hdfs写流程中提到到client在使用DistributedFileSystem这个对象的create方法和NN通信来确认你所提交的路径是否可写入。

现在我们切换到root用户来使用hdfs提交作业看下会发生什么?

我们来看下这个异常:put: Permission denied: user=root, access=WRITE, inode="/user/hadoop":hadoop:supergroup:drwxr-xr-x

提示的是Permission denied,就是权限不够你被拒绝了, user=root,使用的是root用户,access=WRITE,操作是写入。而这个hdfs历经的提示是:inode="/user/hadoop":hadoop:supergroup:drwxr-xr-x,只用hadoop可以执行写操作,连supergroup组和other组都只有读和执行的权限。

所以这个时候在生产上我们一般是这么做的:a,切换到hadoop用户来执行。如果你觉得每次都要这样的话很麻烦就使用hadoop用户帮你添加个权限。

大数据开发之Hadoop篇----hdfs读写权限操作_第2张图片

这就可以使用root用户上传文件了。

你可能感兴趣的:(大数据开发之Hadoop篇----hdfs读写权限操作)