分布式文件系统(HDFS)常用命令整理

举报
敲代码的王小明 发表于 2018/12/20 15:41:31 2018/12/20
【摘要】 由于日常运维和使用中,经常需要使用到HDFS的操作命令,因此做一个整理和分享。共由文件系统命令、运维命令、M/R命令、系统检测工具fsck以及运行piepies作业五部分构成。

第一部分:HDFS文件系统命令

    第一类:文件路径增删改查系列

    hdfs dfs -mkdir dir  创建文件夹

    hdfs dfs -rmr dir  删除文件夹dir

    hdfs dfs -ls  查看目录文件信息

    hdfs dfs -lsr  递归查看文件目录信息

    hdfs dfs -stat path 返回指定路径的信息  

    第二类:空间大小查看系列命令

    hdfs dfs -du -h dir 按照适合阅读的形式人性化显示文件大小

    hdfs dfs -dus uri  递归显示目标文件的大小

    hdfs dfs -du path/file显示目标文件file的大小

    第三类:权限管理类

    hdfs dfs -chgrp  group path  改变文件所属组

    hdfs dfs -chgrp -R /dir  递归更改dir目录的所属组

    hdfs dfs -chmod [-R] 权限 -path  改变文件的权限

    hdfs dfs -chown owner[-group] /dir 改变文件的所有者

    hdfs dfs -chown -R  owner[-group] /dir  递归更改dir目录的所属用户

    第四类:文件操作(上传下载复制)系列:

    hdfs dfs -touchz a.txt 创建长度为0的空文件a.txt

    hdfs dfs -rm file   删除文件file

    hdfs dfs -put file dir  向dir文件上传file文件

    hdfs dfs -put filea dir/fileb 向dir上传文件filea并且把filea改名为fileb

    hdfs dfs -get file dir  下载file到本地文件夹

    hdfs dfs -getmerge hdfs://Master:9000/data/SogouResult.txt CombinedResult  把hdfs里面的多个文件合并成一个文件,合并后文件位于本地系统

    hdfs dfs -cat file   查看文件file

    hdfs fs -text /dir/a.txt  如果文件是文本格式,相当于cat,如果文件是压缩格式,则会先解压,再查看

    hdfs fs -tail /dir/a.txt查看dir目录下面a.txt文件的最后1000字节

    hdfs dfs -copyFromLocal localsrc path 从本地复制文件

    hdfs dfs -copyToLocal /hdfs/a.txt /local/a.txt  从hdfs拷贝到本地

    hdfs dfs -copyFromLocal /dir/source /dir/target  把文件从原路径拷贝到目标路径

    hdfs dfs -mv /path/a.txt /path/b.txt 把文件从a目录移动到b目录,可用于回收站恢复文件

    第五类:判断系列:

    hdfs fs -test -e /dir/a.txt 判断文件是否存在,正0负1

    hdfs fs -test -d /dir  判断dir是否为目录,正0负1

    hdfs fs -test -z /dir/a.txt  判断文件是否为空,正0负1

    第六类:系统功能管理类:

    hdfs dfs -expunge 清空回收站

    hdfs dfsadmin -safemode enter 进入安全模式

    hdfs dfsadmin -sfaemode leave 离开安全模式

    hdfs dfsadmin -decommission datanodename 关闭某个datanode节点

    hdfs dfsadmin -finalizeUpgrade 终结升级操作

    hdfs dfsadmin -upgradeProcess status 查看升级操作状态

    hdfs version 查看hdfs版本

    hdfs daemonlog -getlevel <host:port> <name>  打印运行在<host:port>的守护进程的日志级别

    hdfs daemonlog -setlevel <host:port> <name> <level>  设置运行在<host:port>的守护进程的日志级别

    hdfs dfs -setrep -w 副本数 -R path 设置文件的副本数

第二部分:运维命令

    start-dfs.sh   启动namenode,datanode,启动文件系统

    stop-dfs.sh   关闭文件系统

    start-yarn.sh  启动resourcemanager,nodemanager

    stop-yarn.sh  关闭resourcemanager,nodemanager

    start-all.sh    启动hdfs,yarn

    stop-all.sh    关闭hdfs,yarn

    hdfs-daemon.sh start datanode  单独启动datanode

    start-balancer.sh -t 10% 启动负载均衡,尽量不要在namenode节点使用

    hdfs namenode -format  格式化文件系统

    hdfs namenode -upgrade  分发新的hdfs版本之后,namenode应以upgrade选项启动

    hdfs namenode -rollback  将namenode回滚到前一版本,这个选项要在停止集群,分发老的hdfs版本之后执行

    hdfs namenode -finalize  finalize会删除文件系统的前一状态。最近的升级会被持久化,rollback选项将再不可用,升级终结操作之后,它会停掉name node,分发老的hdfs版本后使用

    hdfs namenode importCheckpoint 从检查点目录装载镜像并保存到当前检查点目录,检查点目录由fs.checkpoint.dir指定

第三部分:M/R命令

    hdfs jar file.jar 执行jar包程序

    hdfs job -kill job_201005310937_0053  杀死正在执行的jar包程序

    hdfs job -submit <job-file>  提交作业

    hdfs job -status <job-id>   打印map和reduce完成百分比和所有计数器。

    hdfs job -counter <job-id> <group-name> <counter-name>  打印计数器的值。

    hdfs job -kill <job-id>  杀死指定作业。

    hdfs job -events <job-id> <from-event-#> <#-of-events> 打印给定范围内jobtracker接收到的事件细节。

    hdfs job -history [all] <jobOutputDir>

    hdfs job -history <jobOutputDir> 打印作业的细节、失败及被杀死原因的细节。更多的关于一个作业的细节比如成功的任务,做过的任务尝试等信息可以通过指定[all]选项查看。

    hdfs job -list [all]  显示所有作业。-list只显示将要完成的作业。

    hdfs job -kill -task <task-id>   杀死任务。被杀死的任务不会不利于失败尝试。

    hdfs job -fail -task <task-id>   使任务失败。被失败的任务会对失败尝试不利。

第四部分:HDFS系统检测工具fsck

    hdfs fsck <path> -move    移动受损文件到/lost+found

    hdfs fsck <path> -delete   删除受损文件。

    hdfs fsck <path> -openforwrite   打印出写打开的文件。

    hdfs fsck <path> -files     打印出正被检查的文件。

    hdfs fsck <path> -blocks     打印出块信息报告。

    hdfs fsck <path> -locations     打印出每个块的位置信息。

    hdfs fsck <path> -racks    打印出data-node的网络拓扑结构。

第五部分:运行pipies作业

    hdfs pipes -conf <path> 作业的配置

    hdfs pipes -jobconf <key=value>, <key=value>, ...  增加/覆盖作业的配置项

    hdfs pipes -input <path>  输入目录

    hdfs pipes -output <path> 输出目录

    hdfs pipes -jar <jar file> Jar文件名

    hdfs pipes -inputformat <class> InputFormat类

    hdfs pipes -map <class> Java Map类

    hdfs pipes -partitioner <class> Java Partitioner

    hdfs pipes -reduce <class> Java Reduce类

    hdfs pipes -writer <class> Java RecordWriter

    hdfs pipes -program <executable> 可执行程序的URI

    hdfs pipes -reduces <num> reduce个数

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。