hadoop 执行权限 hadoop分配hdfs权限_hdfs


此回为HDFS相关关问题的补充。

1. 权限操作

由于hdfs的结构和linux是差不多的,所以我们在hdfs的读写操作上也是会面临权限和路径问题问题。


hadoop 执行权限 hadoop分配hdfs权限_级联_02


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

如何解决?

1)切换目录所需的用户 su - hadoop

2)用hadoop用户帮其他添加权限


hadoop 执行权限 hadoop分配hdfs权限_hdfs_03


2. 常用命令

首先,我们需要知道操作hdfs的命令是在哪里?如果没有将hadoop配置到环境变量当中,那么就切换到hadoop/bin目录下,有两种操作方式(都是一样的):hadoop fs 和 hdfs dfs。

1) 列出hdfs文件系统中的文件以及文件夹

hdfs dfs -ls / 这里是从根目录开始列出根目录下的文件和文件夹,如果想递归地显示出所有文件和文件夹,可以添加参数r

2) 上传文件

hdfs dfs -put local_file hdfs_path,这里我们将本地的一个文件上传到hdfs上,需要指明的是本地文件的地址和上传到hdfs上的位置

同:hdfs dfs copyFromLocal file_path hdfs_path

3)查看文件内容

hdfs dfs -cat hdfs_file

4)创建文件夹以及级联创建

hdfs dfs -mkdir hdfs_path ,如果是级联创建添加参数-p:

hdfs dfs -mkdir -p hdfs_path

5)删除目录或者文件

hdfs dfs -rm hdfs_file 这个是删除文件的,如果想删除文件夹就添加-r这个参数:

hdfs dfs -rm -r hdfs_path,也可以简写成 hdfs dfs -rmr hdfs_path

6)复制系统内的文件

hdfs dfs -cp hdfs_file1 hdfs_file2,如果是文件夹还是添加-r这个参数

7)复制文件到本地文件系统

hdfs dfs -get hdfs_file loacl_path

hdfs dfs copyToLocal hdfs_file local_path

8)将文件从一个地方剪切到另一个地方

hdfs dfs -mv hdfs_file hdfs_path

9)显示文件以及文件夹大小

hdfs dfs -du hdfs_file,如果是显示当前文件夹的大小可以添加参数-s:

hdfs dfs -du -s hdfs_path

10)在本地和hdfs上进行文件的移动(剪切)

hdfs dfs -moveToLocal hdfs_file local_path

hdfs dfs -moveFromLocal lcoal_file hdfs_path

3. 回收机制

linux 没有回收站,但是hdfs 可以开启回收站。只需要配置两个参数就可以了,也是在core-site.xml上,我们先去官网看下这个两参数的解释。


hadoop 执行权限 hadoop分配hdfs权限_hdfs_04


当fs.trash.interval设置为0的时候是禁用了垃圾回收机制的功能的,而其设置是按分钟来的,现在我们设置为1440,一天的时间,而生产上我们一般是设置成7天或者14天。

fs.trash.checkpoint.interval意味这两个检查点之间的分钟数,一般是要少于或者等于fs.trash.interval的,设置为0的话就等同于fs.trash.interval,所以生产上就直接设置为0。


hadoop 执行权限 hadoop分配hdfs权限_hadoop 执行权限_05


现在试下删除一个文件,


hadoop 执行权限 hadoop分配hdfs权限_怎么设置某个用户生成hdfs文件的权限_06


最后一句话,删除只是把文件移动到了一个路径,这个路径在:

hdfs://hadoop001:9000/user/hadoop/.Trash/Current/user/hadoop/LICENSE.txt

这个就是回收站的路径了,想恢复直接mv回去就行了。