2021年大数据Hadoop:HDFS的Shell命令行使用

Posted Lansonli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年大数据Hadoop:HDFS的Shell命令行使用相关的知识,希望对你有一定的参考价值。

目录

HDFS的Shell命令行使用

一、Shell命令行客户端

二、Shell命令选项

三、常用的Shell命令

-ls

-lsr

-mkdir

-put

-moveFromLocal

-moveToLocal

-get

-getmerge    

-mv

-rm

-cp

-cat

-du

-chmod

-chown

-appendToFile


HDFSShell命令行使用

 

一、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 <args>命令。

 

二、Shell命令选项

选项名称

使用格式

含义

-ls

-ls <路径>

查看指定路径的当前目录结构

-lsr

-lsr <路径>

递归查看指定路径的目录结构

-du

-du <路径>

统计目录下个文件大小

-dus

-dus <路径>

汇总统计目录下文件(夹)大小

-count

-count [-q] <路径>

统计文件(夹)数量

-mv

-mv <源路径> <目的路径>

移动

-cp

-cp <源路径> <目的路径>

复制

-rm

-rm [-skipTrash] <路径>

删除文件/空白文件夹

-rmr

-rmr [-skipTrash] <路径>

递归删除

-put

-put <多个linux上的文件> <hdfs路径>

上传文件

-copyFromLocal

-copyFromLocal <多个linux上的文件> <hdfs路径>

从本地复制

-moveFromLocal

-moveFromLocal <多个linux上的文件> <hdfs路径>

从本地移动

-getmerge

-getmerge <源路径> <linux路径>

合并到本地

-cat

-cat <hdfs路径>

查看文件内容

-text

-text <hdfs路径>

查看文件内容

-copyToLocal

-copyToLocal [-ignoreCrc] [-crc] [hdfs源路径] [linux目的路径]

从本地复制

-moveToLocal

-moveToLocal [-crc] <hdfs源路径> <linux目的路径>

从本地移动

-mkdir

-mkdir <hdfs路径>

创建空白文件夹

-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 <paths>

作用 :   以<paths>中的URI作为参数,创建目录。使用-p参数可以递归创建目录

hadoop fs -mkdir /dir1

hadoop fs -mkdir /dir2

hadoop fs -p -mkdir /aaa/bbb/ccc

-put

格式   : hadoop fs -put <localsrc >  ... <dst>

作用 :  将单个的源文件src或者多个源文件srcs从本地文件系统拷贝到目标文件系统中(<dst>对应的路径)。也可以从标准输入中读取输入,写入目标文件系统中

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】 <src> <dst>

作用: 输出“Not implement yet ”  还未实现moveToLocal: Option '-moveToLocal' is not implemented yet.
未实现

 

-get

  格式   hadoop fs  -get [-ignorecrc ]  [-crc]  <src> <localdst>
  作用:将文件拷贝到本地文件系统。 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   <dest>

 作用: 将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 ...] <dest>

作用:    将文件拷贝到目标路径中。如果<dest>  为目录的话,可以将多个文件拷贝到该目录下。

-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 <localsrc> ... <dst>
作用: 追加一个或者多个文件到hdfs指定文件中.也可以从命令行读取输入.

cd /export/server/hadoop2.7.5/etc/hadoop/
hadoop fs -appendToFile  *.xml  /big.xml

以上是关于2021年大数据Hadoop:HDFS的Shell命令行使用的主要内容,如果未能解决你的问题,请参考以下文章

2021年大数据Hadoop(十四):HDFS的高可用机制

2021年大数据Hadoop:HDFS的元数据辅助管理

2021年大数据Hadoop:HDFS的高级使用命令

2021年大数据Hadoop:HDFS的数据读写流程

2021年大数据Hadoop:HDFS分布式文件系统简介

2021年大数据Hadoop(十三):HDFS意想不到的其他功能