hdfs常用命令:
第一部分: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
选项将再不可用,升级终结操作之后,它会停掉namenode
,分发老的hdfs
版本后使用
hdfs namenode importCheckpoint
从检查点目录装载镜像并保存到当前检查点目录,检查点目录由fs.checkpoint.dir
指定
第三部分:mapreduce命令
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
个数