【知识分享】HDFS基础操作以及修改配置文件命令
HDFS基本操作命令
查看文件常用命令
命令格式
hdfs dfs -ls path --查看文件列表
hdfs dfs -ls -R path --递归查看文件列表
hdfs dfs -du path --查看path下磁盘情况,单位字节
使用示例
hdfs dfs -ls / --查询/目录下的所有文件和文件夹
hdfs dfs -ls -R /test --以递归的方式查询/test目录下的所有文件
创建文件夹
命令格式
hdfs dfs -mkdir path
使用示例
hdfs dfs -mkdir /test/top --该命令可递归创建文件夹,不可重复创建,在Linux文件系统中不可见
创建文件
命令格式
hdfs dfs -touchz path
使用示例
hdfs dfs -touchz /test/top/test.txt
--该命令不可递归创建文件,即当该文件的上级目录不存在时无法创建该文件,如果重复创建会覆盖原有的内容
复制文件和目录
命令格式
hdfs dfs -cp 源目录 目标目录
使用示例
hdfs dfs -cp /user/iron /user/iron01 --该命令会将源目录的整个目录结构都复制到目标目录中
hdfs dfs -cp /user/iron/* /user/iron01 --该命令只会将源目录中的文件及其文件夹都复制到目标目录中
移动文件和目录
命令格式
hdfs dfs -mv 源目录 目标目录
使用示例
hdfs dfs -mv /user/iron /user/iron01
hdfs dfs -mv /user/aa.txt /user/bb.txt --将/user/aa.txt文件重命名为/user/bb.txt
上传文件
命令格式
hdfs dfs -put 源文件夹 目标文件夹
使用示例
hdfs dfs -put /home/hadoop01/iron /user/iron01 --该命令上传Linux文件系统中iron整个文件夹
hdfs dfs -put /home/hadoop01/iron/* /user/iron01 --该命令上传Linux文件系统中iron文件夹中的所有文件(不包括文件夹)
类似命令:
hdfs dfs -copyFromLocal 源文件夹 目标文件夹 --copyFromLocal作用同put
hdfs dfs -moveFromLocal 源文件夹 目标文件夹 --上传后删除本地
将本地文件移动到HDFS文件系统下
注:使用 moveFromLocal 命令可以将本地文件移动到HDFS文件系统下,可以一次性移动多个文件。与put命令类似,但是不同的是,该命令执行后源文件将被删除(类似于剪切)。例如,将本地当前目录文件 a.txt 上传到HDFS文件系统根目录的下(/)
命令格式
hadoop fs -moveFromLocal --需要上传的文件路径 上传到HDFS的文件路径
使用示例
hadoop fs -moveFromLocal ~/a.txt / --将本地当前目录文件 a.txt 上传到HDFS文件系统根目录的下(/)
下载文件
命令格式
hdfs dfs -get 源文件夹 目标文件夹
使用示例
hdfs dfs -get /user/iron01 /home/hadoop01/iron --该命令下载hdfs文件系统中的iron01整个文件夹到Linux文件系统中
hdfs dfs -get /user/iron01/* /home/hadoop01/iron --该命令下载hdfs文件系统中的iron01整个文件夹到Linux文件系统中(不包含文件夹)
类似命令:
hdfs dfs -copyToLocal 源文件夹 目标文件夹 --copyToLocal作用同get
hdfs dfs -moveToLocal 源文件夹 目标文件夹 --get后删除源文件
查看文件内容
命令格式
hadoop fs -cat path --从头查看这个文件
hadoop fs -tail path --从尾部查看最后1K
hadoop fs -cat --需要查看的文件路径1 需要查看的文件路径2 ...
使用示例
hadoop fs -cat /userjzl/home/book/aa.txt --查看/userjzl/home/book目录下文件aa.txt的内容(将-cat 换成-text效果一样)
hadoop fs -tail /userjzl/home/book/aa.txt
hadoop fs -cat /input/a.txt /input/b.txt --查看HDFS中的文件 /input/a.txt 和文件 /input/b.txt
删除文件
命令格式
hdfs dfs -rm 目标文件 --rm不可以删除文件夹
hdfs dfs -rm -R 目标文件 --递归删除(慎用)
使用示例
hdfs dfs -rm /user/test.txt --删除test.txt文件
hdfs dfs -rm -R /user/testdir --递归删除testdir文件夹
追加文件
命令格式
hadoop fs -appendToFile --需要加入的内容文件路径 被追加内容的文件路径
使用示例
hadoop fs -appendToFile a.txt /input/b.txt --将本地当前目录的 a.txt 文件的内容追加到HDFS系统中 /input/b.txt 文件中
如果需要一次性追加多个本地文件的内容,则多个文件用 空格 隔开,例如,将本地文件 a.txt 和 b.txt 内容追加到HDFS系统文件的 /input/c.txt 文件中,命令如下:
命令格式
hadoop fs -appendTofile 文件1 文件2 文件3 ... --HDFS系统中被追加的文件
使用示例
hadoop fs -appendTofile a.txt b.txt /input/c.txt #将本地文件 a.txt 和 b.txt 内容追加到HDFS系统文件的 /input/c.txt 文件中
检查HDFS中的目录空间
命令格式
hadoop dfs -du -s -h </ file path>
注意:
在使用HDFS命令操作文件时,HDFS中的文件或目录的路径必须写绝对路径,而本地文件的路径可以是相对路径。
更多操作学习:
// Hadoop中HDFS的Shell操作(开发重点)、启动Hadoop集群、基本语法、常用命令实操、命令大全、-help、-mkdir、-moveFromLocal、-copyFromLocal
// HDFS配置文件详解
修改配置文件
Linux添加修改配置文件一般都是使用默认的VI编辑器,命令是vi 文件名;
1)Vi模式
vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
命令行模式 command mode
- 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode;
底行模式last line mode
- 只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式;
插入模式Insert mode
- 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等;
- 不过一般使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode;
2)命令行模式(command mode)功能键
插入模式
- 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
- 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
- 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字;
从插入模式切换为命令行模式
- 按「ESC」键;
移动光标
- vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。
按ESC键 跳到命令模式,然后:
- :w 保存文件但不退出vi
- :w file 将修改另外保存到file中,不退出vi
- :w! 强制保存,不推出vi
- :wq 保存文件并退出vi
- :wq! 强制保存文件,并退出vi
- q: 不保存文件,退出vi
- :q! 不保存文件,强制退出vi
- :e! 放弃所有修改,从上次保存文件开始再编辑;