如何启动启动HDFS及YARN集群 启动hdfs命令_大数据

CDA数据分析师 出品

HDFS 是一个分布式文件系统, 就像任何其它文件系统, 它允许用户使用 shell 命令操作文件系统。接下来我们结合之前搭建好的分布式集群通过HDFS的shell命令行交互来进一步认识HDFS,并演示怎样使用 HDFS shell 命令。值得注意的是, HDFS 命令大多与 Unix 命令有一对一的关系。

首先打开我们的master、slave1、slave2三台虚拟机,然后在master的终端中输入如下命令来启动HDFS,

start-dfs.sh

启动过程如下图所示,启动完成后执行命令jps查看进程是否启动

如何启动启动HDFS及YARN集群 启动hdfs命令_HDFS_02

创建路径mkdir

如果你的 HDFS home 目录不存在,请先创建它并修改权限。

创建 HDFS home 目录的命令如下:

hdfs dfs –mkdir /user

hdfs dfs –mkdir /user/hduser #这样的用法只能一级一级创建目录,父目录不存在使用此命令会报错

或者

hdfs dfs –mkdir –p /user/hduser #所创建的目录如果父目录不存在就创建该目录

上面创建的/user/hduser 相当于 HDFS 中的用户当前目录,后面可以看到复制文件时无需指定绝对目录。

查看目录ls

运行下面的命令, 列出 HDFS home 目录的内容。

hdfs dfs –ls #列出用户主目录的内容

hdfs dfs –ls / #列出 hdfs 文件系统根目录下的目录和文件

hdfs dfs –ls –R /#列出hdfs文件系统所有目录

读取文档cat

HDFS 文件系统有一个/作为根目录。如下面的命令是读取/user/hduser/fib.csv 文件并打印到屏幕上, 就像 Unix 系统中的 cat 命令:

hdfs dfs –cat /user/hduser/fib.csv

更改文件属性chmod chown

HDFS中针对文件和目录的权限模式与传统操作系统类似,一共提供三类权限模式:只读权限(r)、写入权限(w)、可执行权限(x)。读取文件或列出目录内容时需要只读权限,写入一个文件或是在一个目录上新建及删除文件、目录需要写入权限。不过可执行权限可以忽略,因为你不可能在hdfs上执行一个文件,这是与一般操作系统的文件系统是有区别的地方。
修改 HDFS home目录权限的命令如下:

hdfs dfs –chmod –R 755 /user/hduser

hdfs dfs –chown hduser /user/hduser

上传文档

运行下面的命令, 在你的 HDFS home 目录中创建一个新的 input 目录:

hdfs dfs –mkdir input

运行如下的命令来列出在 HDFS 重新创建的目录的内容:

hdfs dfs -ls input

运行如下的命令, 将本地 readme.txt 文件拷贝到 input 目录中:

hdfs dfs –copyFromLocal readme.txt input

hdfs dfs –put readme.txt input # hdfs file 的父目录一定要存在, 否则命令不会执行

运行如下的命令, 将本地文件夹 wc-input 上传到 HDFS 文件系统:

hdfs dfs –copyFromLocal wc-input .

或者

hdfs dfs –copyFromLocal wc-input input/wc-input

运行如下的命令, 列出 input 目录:

hdfs dfs –ls input

从键盘读取输入到 hdfs

命令格式如下:

hdfs dfs –put -

从键盘读取输入到 hdfs file 中,按 Ctrl+D 结束输入,hdfs file不能存在,否则命令不会执行,

将本地文件移至hdfs moveFromLocal

hdfs dfs –moveFromLocal …

与 put 相类似,命令执行后源文件 local src 被删除, 也可以从从键盘读取输入到 hdfs file 中

copyFromLocal

hdfs dfs –copyFromLocal …

与 put 相类似, 也可以从从键盘读取输入到 hdfs file 中.

get

hdfs dfs –get

local file 不能和 hdfs file 名字不能相同, 否则会提示文件已存在, 没有重名的文件会复制到本地

hdfs dfs –get …

拷贝多个文件或目录到本地时 本地要为文件夹路径
注意: 如果用户不是 root, local 路径要为用户文件夹下的路径, 否则会出现权限问题

copyToLocal

hdfs dfs –copyToLocal …

与 get 相类似

rm

删除文件或目录

hdfs dfs –rm … #删除一个文件

hdfs dfs –rm –r … #每次删除多个文件或目录

cp

hdfs dfs –cp

目标文件不能存在, 否则命令不能执行, 相当于给文件重命名并保存, 源文件还存在

hdfs dfs –cp …

目标文件夹要存在, 否则命令不能执行

mv

hdfs dfs –mv

目标文件不能存在, 否则命令不能执行, 相当于给文件重命名并保存, 源文件不存在

hdfs dfs –mv …

源路径有多个时, 目标路径必须为目录, 且必须存在。
注意: 跨文件系统的移动(local 到 hdfs 或者反过来) 都是不允许的

count

hdfs dfs –count

统计 hdfs 对应路径下的目录个数, 文件个数, 文件总计大小
显示为目录个数, 文件个数, 文件总计大小, 输入路径

tail
hdfs dfs –tail 
dfsadmin
hdfs dfsadmin –help
管理员可以通过 dfsadmin 管理 HDFS, 用法可以通过上述命令查看
 hdfs dfsadmin –reporthdfs dfsadmin –report
显示文件系统的基本数据
hdfs dfsadmin –safemode <enter|leave|get|wait>

enter: 进入安全模式; leave: 离开安全模式; get: 获知是否开启安全模式;

wait: 等待离开安全模式

如何启动启动HDFS及YARN集群 启动hdfs命令_hdfs_03