2021大数据领域优质创作 博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习。
有对大数据感兴趣的可以关注微信公众号:三帮大数据
目录
HDFS 的 Shell 命令行使用
一、Shell命令行客户端
HDFS是存取数据的分布式文件系统,那么对HDFS的操作,就是文件系统的基本操作,比如文件的创建、修改、删除、修改权限等,文件夹的创建、删除、重命名等。对HDFS的操作命令类似于Linux的shell对文件的操作,如ls、mkdir、rm等。
Hadoop提供了文件系统的shell命令行客户端,使用方法如下:
hadoop fs <args>
文件系统shell包括与Hadoop分布式文件系统(HDFS)以及Hadoop支持的其他文件系统(如本地FS,HFTP FS,S3 FS等)直接交互的各种类似shell的命令。
所有FS shell命令都将路径URI作为参数。URI格式为scheme://authority/path。对于HDFS,该scheme是hdfs,对于本地FS,该scheme是file。scheme和authority是可选的。如果未指定,则使用配置中指定的默认方案。
对于HDFS,命令示例如下:
hadoop fs -ls hdfs://namenode:port/parent/child
hadoop fs -ls /parent/child #core-site.xml中的fs.defaultFS中有配置
对于本地文件系统,命令示例如下:
hadoop fs -ls file:///root/
如果使用的文件系统是HDFS,则也可使用hdfs dfs 命令。
二、S hell 命令选项
| 选项名称 | 使用格式 | 含义 |
|---|---|---|
| -ls | -ls <路径> | 查看指定路径的当前目录结构 |
| -lsr | -lsr <路径> | 递归查看指定路径的目录结构 |
| -du | -du <路径> | 统计目录下个文件大小 |
| -dus | -dus <路径> | 汇总统计目录下文件(夹)大小 |
| -count | -count [-q] <路径> | 统计文件(夹)数量 |
| -mv | -mv <源路径> <目的路径> | 移动 |
| -cp | -cp <源路径> <目的路径> | 复制 |
| -rm | -rm [-skipTrash] <路径> | 删除文件/空白文件夹 |
| -rmr | -rmr [-skipTrash] <路径> | 递归删除 |
| -put | -put <多个linux上的文件> | 上传文件 |
| -copyFromLocal | -copyFromLocal <多个linux上的文件> | 从本地复制 |
| -moveFromLocal | -moveFromLocal <多个linux上的文件> | 从本地移动 |
| -getmerge | -getmerge <源路径> | 合并到本地 |
| -cat | -cat | 查看文件内容 |
| -text | -text | 查看文件内容 |
| -copyToLocal | -copyToLocal [-ignoreCrc] [-crc] [hdfs源路径] [linux目的路径] | 从本地复制 |
| -moveToLocal | -moveToLocal [-crc] | 从本地移动 |
| -mkdir | -mkdir | 创建空白文件夹 |
| -touchz | -touchz <文件路径> | 创建空白文件 |
| -stat | -stat [format] <路径> | 显示文件统计信息 |
| -tail | -tail [-f] <文件> | 查看文件尾部信息 |
| -chmod | -chmod [-R] <权限模式> [路径] | 修改权限 |
| -chown | -chown [-R] [属主][:[属组]] 路径 | 修改属主 |
| -chgrp | -chgrp [-R] 属组名称 路径 | 修改属组 |
| -help | -help [命令选项] | 帮助 |
三、常用的Shell命令
- ls
格式: hadoop fs ****-****ls URI
作用:类似于Linux的ls命令,显示文件列表
hadoop fs -ls /
- lsr
格式 ** : ** hdfs dfs ****-****lsr URI
作用 ** : ** 在整个目录下递归执行ls **, ** 与UNIX中的ls-R类似
hadoop fs -lsr /
- mkdir
格式 : hdfs dfs [-p] -mkdir
作用 : 以中的URI作为参数,创建目录。使用-p参数可以递归创建目录
hadoop fs -mkdir /dir1
hadoop fs -mkdir /dir2
hadoop fs -p -mkdir /aaa/bbb/ccc
- put
格式 : hadoop fs -put ...
作用 : 将单个的源文件src或者多个源文件srcs从本地文件系统拷贝到目标文件系统中(对应的路径)。也可以从标准输入中读取输入,写入目标文件系统中
echo “Hello HDFS” >> /root/1.txt
hadoop fs -put /root/1.txt /dir1
- moveFromLocal
格式: hdfs dfs ****-****moveFromLocal ** < **localsrc **> ** **< **dst >
作用 **: ** 和put命令类似,但是源文件localsrc拷贝之后自身被删除
echo “Hello HDFS” >> /root/2.txt
hdfs dfs -moveFromLocal /root/2.txt /
- moveToLocal
格式 ; hadoop dfs -moveToLocal 【-crc】
作用: 输出“Not implement yet ” 还未实现moveToLocal: Option '-moveToLocal' is not implemented yet.
未实现
- get
格式 hadoop fs -get [-ignorecrc ] [-crc]
作用:将文件拷贝到本地文件系统。 CRC 校验失败的文件通过-ignorecrc选项拷贝。 文件和CRC校验和可以通过-CRC选项拷贝hadoop fs -get /2.txt /export/dat
-getmerge
格式: hadoop fs -getmerge -nl < hdfs dir > < local file >
功能:合并下载多个文件
参数: 加上nl后,合并到local file中的hdfs文件之间会空出一行
示例:比如hdfs的目录 /aaa/下有多个文件:log.1, log.2,log.3,...
hadoop fs -getmerge /aaa/log.* ./log.sum
- mv
格式 : hdfs dfs -mv URI
作用: 将hdfs上的文件从原路径移动到目标路径(移动之后文件删除),该命令不能夸文件系统
hdfs dfs -mv /dir1/a.txt /dir2
- rm
格式: hadoop fs -rm [-r] 【-skipTrash】 URI 【URI 。。。】
作用: 删除参数指定的文件和目录,参数可以有多个,删除目录需要加-r参数
如果指定-skipTrash选项,那么在回收站可用的情况下,该选项将跳过回收站而直接删除文件;
否则,在回收站可用时,在HDFS Shell 中执行此命令,会将文件暂时放到回收站中。
hadoop fs -rm /2.txt #删除文件
hadoop fs -rm -r /dir1 #删除目录
- cp
格式: hdfs dfs -cp URI [URI ...]
作用: 将文件拷贝到目标路径中。如果 为目录的话,可以将多个文件拷贝到该目录下。
-f 选项将覆盖目标,如果它已经存在。
-p 选项将保留文件属性(时间戳、所有权、许可、ACL、XAttr)。
hadoop fs -cp /dir1/1.txt /dir2/2.txt
- cat
hadoop fs -cat URI [uri ...]
作用:将参数所指示的文件内容输出到控制台
hadoop fs -cat /dir2/2.txt
-du
hadoop fs -du URI
功能:显示目录中所有文件大小,当只指定一个文件时,显示此文件的大小。
hadoop fs -du /
- chmod
格式: hadoop fs -chmod [-R] URI[URI ...]
作用: 改变文件权限。如果使用 -R 选项,则对整个目录有效递归执行。使用这一命令的用户必须是文件的所属用户,或者超级用户。例如:可以创建一个用户hadoop,将/a.txt的所属用户和所属用户组修改为hadoop
hadoop fs -chmod -R 777 /dir1
- chown
格式: hdfs dfs -chmod [-R] URI[URI ...]
作用: 改变文件的所属用户和用户组。如果使用 -R 选项,则对整个目录有效递归执行。使用这一命令的用户必须是文件的所属用户,或者超级用户。hadoop fs -chown -R hadoop:hadoop /a.txt
- appendToFile
格式: hadoop fs -appendToFile ...
作用: 追加一个或者多个文件到hdfs指定文件中.也可以从命令行读取输入.cd /export/server/hadoop2.7.5/etc/hadoop/
hadoop fs -appendToFile *.xml /big.xml
- 📢博客主页:lansonli.blog.csdn.net
- 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
- 📢大数据系列文章会每天更新,停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨