设为首页 收藏本站
查看: 603|回复: 0

[经验分享] Hadoop Shell命令大全

[复制链接]

尚未签到

发表于 2016-12-5 06:30:35 | 显示全部楼层 |阅读模式
Hadoop Shell命令

hadoop支持命令行操作HDFS文件系统,并且支持shell-like命令与HDFS文件系统交互,对于其它的文件系统LocalFS、HFTP FS、S3 FS等。对于大多数 程序猿/媛 来说,shell-like命令行操作都是比较熟悉的,其实这也是Hadoop的极大便利之一,至少对于想熟悉乃至尽快熟练操作HDFS的人来说。
由于平时在工作中经常用到Hadoop Shell命令来操作HDFS上的文件,有时候因为Hadoop Shell命令不熟悉,需要重新查找;或者需要某个命令的参数;再或者需要知晓相似命令的差异;于是便有了本文,对于Hadoop Shell命令的总结,方便自己以后得工作,也算是对类似工作的总结。
 

hadoop fs FsShell
Usage: java FsShell
[-ls <path>]
[-lsr <path>]
[-df [<path>]]
[-du <path>]
[-dus <path>]
[-count[-q] <path>]
[-mv <src> <dst>]
[-cp <src> <dst>]
[-rm [-skipTrash] <path>]
[-rmr [-skipTrash] <path>]
[-expunge]
[-put <localsrc> ... <dst>]
[-copyFromLocal <localsrc> ... <dst>]
[-moveFromLocal <localsrc> ... <dst>]
[-get [-ignoreCrc] [-crc] <src> <localdst>]
[-getmerge <src> <localdst> [addnl]]
[-cat <src>]
[-text <src>]
[-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>]
[-moveToLocal [-crc] <src> <localdst>]
[-mkdir <path>]
[-setrep [-R] [-w] <rep> <path/file>]
[-touchz <path>]
[-test -[ezd] <path>]
[-stat [format] <path>]
[-snapshot <path>]
[-tail [-f] <file>]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-chgrp [-R] GROUP PATH...]
[-help [cmd]]

 
下面详细解释一下命令的操作,这些命令和Unix下的命令差不多,有些看了就明白其含义了。
 

hadoop fs -ls <path>
 返回文件path的统计信息,信息包括:
permissions number_of_replicas userid groupid filesize modification_date modification_time filename
有没有感觉和shell命令的ls很是类似,需要注意的是number_of_replicas字段,和filesize字段,更要注意一下,path和file在该命令执行时的区别。
 

hadoop fs -lsr <path>
 这个是ls的recursive版本,类似于ls -R命令和ls的区别。
 

hadoop fs -du [-s] [-h] URI [URI …]
 显示文件的大小,其中:
-s:显示文件及其子目录的总体大小
-h:将结果转化成易识别的文件大小
URI表示文件、目录的路径,可以使相对路径,或者绝对路径
 

hadoop fs -dus URI [URI …]
 hadoop fs -du -s URI [URI …]的简写形式。
 

hadoop fs -df <path>
 显示Hadoop所使用的文件系统的大小
 

hadoop fs -count [-q] <path>
 显示path 下的目录数量,文件大小等信息
默认情况下显示一下信息:
DIR_COUNT, FILE_COUNT, CONTENT_SIZE FILE_NAME
添加-q信息后,输出的信息更多:
QUOTA, REMAINING_QUATA, SPACE_QUOTA, REMAINING_SPACE_QUOTA, DIR_COUNT, FILE_COUNT, CONTENT_SIZE, FILE_NAME
 

hadoop fs -mv <src> <dst>
  从src移动到dst,允许多个源移动到同一个dst,dst必须是目录,不过,不能在不同的FS中移动。
 

hadoop fs -cp <src> ... <dst>
 拷贝多个源到dst,限制是dst必须是目录
 

hadoop fs -rm [-skipTrash] <path>
 删除文件,不能删除目录
-skipTrash:直接删除文件,不再往.Trash里面放
 

hadoop fs -rmr [-skipTrash] <path>
 这个能够迭代删除目录及其下面的文件
-skipTrash:和rm参数里面的功能相同
 

hadoop fs -expunge
 清空Trash,Trash的概念详见http://hadoop.apache.org/docs/r1.0.4/hdfs_design.html,参考下Trash的含义
 

hadoop fs -put <localsrc> ... <dst>
 复制单个、或者多个本地FS的目录或者文件到目标文件系统
 

hadoop fs -copyFromLocal <localsrc> ... <dst>
 和put命令类似,唯一的限制是src必须是本地的文件
 

hadoop fs -moveFromLocal <localsrc> ... <dst>
 和put命令类似,这个命令会在localsrc执行完成后,删除本地的文件,注意是删除本地的文件
 

hadoop fs -get [-imnoreCrc] <localsrc> ... <dst>
 拷贝FS上的src到本地的dst目录
-imnoreCrc:拷贝时忽略crc检验,如果想拷贝CRCs,需要添加-crc参数
 

hadoop fs -getmerge <src> <localdst> [addnl]
 合并src和dst文件,将src合并到dst文件之后,注意dst是个本地文件
addnl:会在每行结尾添加newline字符
 

hadoop fs -cat <src>
 将src的内容输出到stdout,和Unix下面的cat功能类似
 

hadoop fs -text <src>
 把src文件按照text输出,zip或者TextRecordInputStream格式的也可以按照text输出。
 

hadoop fs -copyToLocal [-ignoreCrc] [-crc] <src> <localdst>
 和get命令类似,唯一的限制是dst必须是本地文件系统的文件
 

hadoop fs -moveToLocal [-crc] <src> <localdst>
 输出:'-moveToLocal' is not implemented yet,还没有实现
 

hadoop fs -mkdir <path>
 创建path文件夹,如果path的父目录不存在,会迭代创建,类似于mkdir -p命令
 

hadoop fs -setrep [-R] <rep> <path/file>
 修改HDFS文件或者目录的Replication数目,对于重要的文件,需要增加副本数目,确保不会丢失或者损坏。
-R参数表示迭代更新,目录下面的副本数目同时更新。
 

hadoop fs -touchz <path>
 创建一个大小为0的文件,和touch的结果类似
 

hadoop fs -test -[ezd] <path>
 测试文件的目录属性
-e:测试文件是否存在
-z:文件大小是否为0
-d:测试是否是目录
 

hadoop fs -stat [format] <path>
 返回目录的统计信息
 

hadoop fs -tail [-f] <file>
 显示文件的最后kb信息,-f参数和Unix下面的参数一样
 

hadoop fs -chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...
hadoop fs -chown [-R] [OWNER][:[GROUP]] PATH...
hadoop fs -chgrp [-R] GROUP PATH...

 这三个是权限操作命令,和Unix命令下的功能类似。
 
Hadoop Shell命令还是比较简单的,只是其中的差别必须等到用的时候才能体会,本文只是做个备忘,将工作中常用的命令整理下。
实际上,在工作中使用hadoop shell命令还是比较有限的,这些足够应付工作的常规情况了
 
 
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-309596-1-1.html 上篇帖子: hadoop-windows环境安装 下篇帖子: hadoop第二步:将hadoop的HDFS替换成KFS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表