ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

常用的HDFS Shell命令及解析

2021-11-27 12:32:39  阅读:181  来源: 互联网

标签:HDFS Shell 文件 hadoop URI fs user 解析


常用的HDFS Shell命令

大多数HDFS Shell命令的行为和对应的Unix Shell命令类似,主要不同之处是HDFS Shell 命令操作的是远程Hadoop服务器的文件,而Unix Shell命令操作的是本地文件。
命令功能
-help [cmd]显示命令的帮助信息
-ls( r ) 显示当前目录下的所有文件
-du( s ) 显示目录中所有文件的大小
-count [-q] 显示目录中文件数量
-mv 移动多个文件到目标目录
-cp 复制多个文件到目标目录
-rm( r )删除文件(夹)
-put 本地文件复制到hdfs
-copyFromLocal与put相同
-moveFromLocal本地文件移动到hdfs
-get[-ignoreCrc] 复制文件到本地,可忽略crc校验
-getmerge 将源目录中的所有文件排序合并到一个文件中
-cat 在终端显示文件内容
-text 在终端显示文件内容
-copyToLocal [-ignoreCrc] 复制到本地
-moveToLocal移动到本地
-mkdir 创建文件夹
-touchz 创建一个空的文件
部分命令的具体使用方法:

1.mkdir 创建目录

使用方法:hadoop fs -mkdir path

接收路径指定的URI作为参数,创建这些目录。其行为类似于UNIX中的mkdir命令
第一种方式

  • hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2

第二种方式

  • hadoop fs -mkdir hdfs://host1:port1/user/hadoop/dir hdfs://host2:port2/user/hadoop/dir

2.put 上传文件

使用方法:hadoop fs -put localsrc ··· dst

从本地文件系统中复制单个或多个源路径到目标文件系统,也支持从标准输入中读取输入写入到目标文件系统,成功返回0,失败返回-1

复制单个文件

  • hadoop fs -put localfile /user/hadoop/hadoopfile

复制多个文件

  • hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir

3.ls 列出文件

使用方法:hadoop fs -ls args

递归版本:hadoop fs -lsr args

#如果是文件,则按照如下的格式返回文件信息。

#文件名 <副本数> 文件大小 修改日期 修改时间 权限 用户ID 组ID

#如果是目录,则返回子文件的一个列表, 就像UNIX中一样。格式如下:

#目录名 dir 修改日期 修改时间 权限 用户ID 组ID

示例:

列出HDFS目录下名为‘input’的文件 返回值:成功返回0 失败返回-1

  • hadoop fs -ls input

递归列出output下的子目录中的文件及目录信息

  • hadoop fs -ls output

列出HDFS下的文件

  • hadoop fs -ls

#注意:在HDFS中未带参数的“ls”命令没有返回值,它默认返回HDFS的“home”目录下的内容。在HDFS中,没有当前目录./这样的概念,也没有cd这个命令。


4.cat 将文件内容显示到stdout

使用方法:hadoop fs -cat URI [URI···]

显示input目录下的所有文件内容

  • hadoop fs -cat input/*

5.get 将hdfs文件复制到本地文件系统

使用方法:hadoop fs -get [-ignorecrc] [crc] src localsrc

-ignorecrc选项复制CRC1校验失败的文件,使用-crc选项复制文件以及CRC信息。

  • hadoop fs -get ini IN1
  • hadoop fs -get /user/hadoop/file localfile
  • hadoop fs -get hdfs://host:port/user/hadoop/file localfile

成功返回0.失败返回-1


6.rm 删除文件或非空目录

使用方法:hadoop fs rm URI [URI···]

删除指定非空目录dir

  • hadoop fs -rm /user/hadoop/dir

删除指定文件file

  • hadoop fs -rm /user/hadoop/file

递归删除目录dir下的子目录及其所有文件

  • hadoop fs -rmr /user/hadoop/file

7.chgrp 改变文件所属的组

使用方法:hadoop fs -chgrp [-R] GROUP URI [URI···]

命令的使用者必须是文件的所有者或root用户


8.chmod 改变文件的权限

hadoop fs -chmod [-R] <MODE[,MODE]···|OCTALMODE> URI [URI···]

命令的使用者必须是文件的所有者或root用户


9.copyFromLocal 复制本地文件到hdfs,与put命令类似

使用方法:hadoop fs -copyFromLocal URI


10.copyToLocal 复制hdfs文件到本地,与get命令类似

使用方法:hadoop fs -copyToLocal [-ignorecrc] [-crc] URI


11.cp 复制文件

使用方法:hadoop fs -cp URI [URI···]

将文件从源路径复制到目标路径。允许有多个源路径,但此时目标路径必须是一个目录

  • hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
  • hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir

返回值:成功返回0,失败返回-1


12.du 显示目录属性

使用方法:hadoop fs -du URI [URI···]

显示目录中所有文件的大小,或者当只指定一个文件时,显示此文件的大小

  • hadoop fs -du /user/hadoop/dir1 /user/hadoop/file1
  • hdfs://host:port/user/hadoop/dir1

13.expunge 清空回收站

使用方法:hadoop fs -expunge

可参考HDFS设计文档以获取更多关于回收站特性的信息。


14.getmerge

使用方法:hadoop fs -getmerge [addnl]

将源目录中的所有文件排序合并到一个本地文件中。addnl是可选的,用于指定在每个文件结尾添加一个换行符


15.mv 移动文件

使用方法:hadoop fs -mv URI [URI···]

将文件从源路径移动到目标路径。这个命令允许有多个源路径,但此时目标路径必须是一个目录,。不允许在不同的文件系统移动文件

  • hadoop fs -mv /user/hadoop/file1 /user/hadoop/dir

16.setrep 改变一个文件的副本系数

使用方法:hadoop fs -setrep [-R] path

  • hadoop fs -setrep -w 3 -R /user/hadoop/dir

17.stat 返回指定路径的统计信息

使用方法:hadoop fs -stat path


18.tail 在stdout中输出文件尾部1KB的内容

使用方法:hadoop fs -tail pathname

包含返回值


19.test 检查文件或目录

使用方法:hadoop fs -test -[ezd] URI

选项说明:

-e:检查文件是否存在。存在返回0

-z:检查文件容量是否为0。是返回0

-d:检查目录是否存在。是返回1,否则返回0

  • hadoop fs -e filename

20.text 将源文件输出为文本格式

使用方法:hadoop fs -text src

允许的格式为:zip和TextRecordInputStream


21.touchz 创建一个空文件

使用方法:hadoop fs -touchz URI [URI···]

  • hadoop fs -touchz pathname

返回值:成功返回0,失败返回-1


Hadoop 系统管理命令

命令功能
hadoop version查看Hadoop版本
sbin/start-all.sh启动Hadoop所有进程
sbin/stop-all.sh停止Hadoop所有进程
bin/hadoop namenode -format格式化一个新的分布式文件系统
sbin/start-dfs.sh在分配的Namenode上,启动HDFS
sbin/stop-dfs.sh在分配的Namenode上,停止HDFS
sbin/start-yarn.sh启动yarn
sbin/stop-yarn.sh停止yarn

Hadoop常用端口号

端口名称Hadoop2.XHadoop3.X
NameNode 内部通信端口8020 / 90008020 / 9000/9820
NameNode HTTP UI500709870
MapReduce 查看执行任务端口80888088
历史服务器通信端口1988819888

Web 端查看 HDFS 的 NameNode

(a)浏览器中输入:http://hadoop102:9870

(b)查看 HDFS 上存储的数据信息

Web 端查看 YARN 的 ResourceManager

(a)浏览器中输入:http://hadoop103:8088

(b)查看 YARN 上运行的 Job 信息

Web 端查看 JobHistory

(a)浏览器中输入:
http://hadoop102:19888/jobhistory


  1. HDFS客户端软件实现了对HDFS文件内容的校验和(checksum)检查。当客户端创建一个新的HDFS文件时,会计算这个文件每个数据块的校验和,并将校验和作为一个单独的隐藏文件保存在同一个HDFS名字空间下。当用户读取文件内容时,会校验从Datanode获取的数据以及相应的校验和与文件中的检验和是否匹配,如果不匹配,客户端可以选择从其他的Datanode中获取该数据块的副本。 ↩︎

标签:HDFS,Shell,文件,hadoop,URI,fs,user,解析
来源: https://blog.csdn.net/weixin_48627356/article/details/121574886

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有