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