HDFS的shell操作

1、启动我们配置好的集群

命令:在master上操作,cd到sbin文件夹 (/opt/hadoop-3.1.4/sbin),注意启动顺序:

[root@master sbin]# ./start-dfs.sh

[root@master sbin]# ./start-yarn.sh

[root@master sbin]# ./mr-jobhistory-daemon.sh start historyserver 或者  mapred --daemon start historyserver

访问HDFS系统的指令:

hadoop fs -- 官方推荐

hdfs dfs -- 也较常用

hadoop fs 和 hdfs dfs之间没有太大的区别

1. 在命令行中输入hdfs,回车后,就会提示hdfs后可以使用哪些命令,其中有一个是dfs。

2. 在命令行中输入hdfs dfs,回车后,就会提示dfs后可以添加的一些常用shell命令

常用的shell命令:

1. 查看指令 ls

hdfs dfs -ls [-h] [-R] <path>

path 指定目录路径

-R 递归查看指定目录及其子目录

调用格式: hdfs dfs -ls  /目录

2. 创建目录 mkdir

hdfs dfs -mkdir [-p]<path>

path 为待创建的目录

-p选项的行为与linux mkdir -p非常相似,它会沿着路径创建父目录

调用格式:  hdfs dfs -mkdir (-p) /目录

 

3. 上传指令 put

hdfs dfs -put [-f] [-p] <localsrc> <dst>

将本地文件系统的文件上传到分布式文件系统

-f 覆盖目标文件(已存在下)

-p 保留访问和修改时间,所有权和权限

localsrc 本地文件系统(客户端所在机器)

dst 目标文件系统(HDFS)

调用格式:hdfs dfs -put  /本地文件  /目的目录

(注意:所有节点的防火墙都要关闭,不然可能会上传失败。)

 点击链接:

http://192.168.199.130:50070/dfshealth.html#tab-overview

http://192.168.199.130:8088/cluster

http://192.168.199.130:19888/jobhistory

 

4. 上传指令 moveFromLocal

本地文件系统的文件上传到分布式文件系统

调用格式:同put

注意:这里是将本地文件剪切到分布式文件系统

命令如:hdfs dfs -moveFromLocal c.txt /dir1

5. 下载文件 get

hdfs dfs -get [-f] [-p] <src> <localdst>

下载文件到本地文件系统指定目录,localdst必须是目录

-f 覆盖目标文件(已存在下)

-p 保留访问和修改时间,所有权和权限

e.g. hdfs dfs -get  /dir2/dir22/a.txt   ./

[root@master sbin]# touch c.txt
[root@master sbin]# hdfs dfs -moveFromLocal c.txt /dir1
[root@master sbin]# ls
[root@master sbin]# cd
[root@master ~]# ls
[root@master ~]# hdfs dfs -get /dir1/c.txt /
[root@master ~]# cd /
[root@master /]# ls

6. 移动数据 mv 

hdfs dfs -mv <src> <dst>

 移动文件到指定文件夹下

可以使用该命令移动数据,重命名文件的名称

e.g. hdfs dfs -mv /dir1/a.txt  /dir2

 hdfs dfs -mv /dir1/c.txt /dir2

7. 删除文件 rm

hdfs dfs -rm [-r] [-skipTrash] <src>

注意:如果删除文件夹需要加-r

e.g. hdfs dfs -rm -r  /dir2

 

8. 拷贝文件 cp 

hdfs dfs -cp [-f] [-p] <src> <dst>

将文件拷贝到目标路径中 

-f 覆盖目标文件(已存在下)

-p 保留访问和修改时间,所有权和权限

e.g. hdfs dfs -cp /dir1/a.txt  /dir2

 命令:hdfs dfs -cp /dir1/c.txt /dir2

9. 查看文件内容 cat

hdfs dfs -cat <src> 

读取指定文件全部内容,显示在标准输出控制台

注意:对于大文件内容读取,慎重

e.g. hdfs dfs -cat /dir1/a.txt

10. 追加数据到HDFS文件中 appendToFile 

hdfs dfs -appendToFile <localsrc><dst>

将所有给定本地文件的内容追加到给定dst文件

dst如果文件不存在,将创建该文件

hdfs dfs -appendToFile 

注:HDFS适合存储大文件,appendToFile 可以实现对小文件进行一个合并。

hdfs dfs -appendToFile c.txt /a.txt

11、文件权限

首先我先介绍几个和文件相关的概念,Linux 下一切皆文件。

**属主:**每个文件都有一个属主,这个属主是一个用户,一般哪个用户创建了文件,那它的属主就是谁,但是是可以修改的。

**属组:**属组是跟这属主的,一般哪个属主创建了文件,那么用户的属组也是它创建的文件的属组,也是可以修改。

**其他组:**除了属主和属组外的其他系统用户和用户组都是其他组。

文件的权限又四部分组成:

第一部分:第 1 位,有三种取值:普通文件(-)、目录(d),链接(l)。

第二部分:第 2-4 位,表示属主的权限:可读(r)、可写(w)、可执行(x),如果对应的位没有权限用 - 表示。

第三部分:第 5-7 位,表示属组的权限,表示方法同属主。

第四部分:第 8-10 位,表示其他组的权限,表示方法同属主。

例如:

777 = rwxrwxrwx

755 = rwxr-xr-x

666 = rw-rw-rw-

744 = rwxr--r--

12. 更改权限 chmod

hdfs dfs -chmod [-R] <src>

改变文件权限

-R 对整个目录有效,递归执行。

e.g. hdfs dfs -chmod -R 777  /a.txt

[root@master ~]# hdfs dfs -chmod 777 /a.txt
[root@master ~]# hdfs dfs -mkdir -p /dir3/dir33
[root@master ~]# hdfs dfs -put b.txt /dir3/dir33
[root@master ~]# hdfs dfs -chmod -R 777 /dir3/dir33/b.txt 

13. 更改用户用户组 chown

hdfs dfs -chown [-R] <src>

改变文件的用户和用户组

e.g. hdfs dfs -chown -R hadoop:hadoop /a.txt

[root@master home]# useradd hadoop
[root@master home]# passwd hadoop


[root@master home]# ls
hadoop
[root@master home]# hdfs dfs -chown hadoop:hadoop /a.txt

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值