Hadoop客户端指令大全

Hadoop客户端指令大全

指令风格说明

Hadoop shell可以使用三种不同风格的开头来使用,其效果基本相同,分为:

hadoop fs

CDH官方邮件建议Hadoop 1.x版本使用,可以适用于除HDFS系统以外的Local FS、WebHDFS、S3 FS以及其它文件系统

hdfs dfs

CDH官方邮件建议Hadoop 2.x+版本使用,只能操作HDFS文件系统

hadoop dfs

目前仍可使用,但不赞成使用

基本格式说明

fs [–config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
其中–config:
用于设置 Hadoop 配置文件目录,默认目录为 ${HADOOP_HOME}/etc/hadoop/

COMMAND:
为各类具体命令,细分为用户命令(Hadoop集群用户的常用命令
常用如fs/dfs下的各类操作)与管理命令(Hadoop集群管理员常用的命令,如:datanode)

GENERIC_OPTIONS:
为多个命令都支持的通用选项(所谓多个命令即dfsadmin, fs, fsck和 job)

COMMAND_OPTIONS:
单独命令的额外选项

指令详情

说明:本指令大全以Hadoop CDH版本为主,主要以hadoop fs的指令风格介绍(其它同理),参考依次以官方英文文档、《Hadoop权威指南》、中文文档、国外论坛、国内论坛降低

fs开头

1.x指令

cat

功能:将路径指定文件的内容输出到stdout
返回:0成功,1失败(故可用echo $?查看返回)
使用方法:hadoop fs -cat URI [URI …]
例:hadoop fs -cat hdfs://host1:port1/file1 hdfs://host2:port2/file2 可以查看HDFS的file1和file2
例:hadoop fs -cat file:///file3 /user/hadoop/file4 可以查看Linux本地文件的file3和file4

checksum

功能:查看文件的checksum信息
使用方法:hadoop fs -checksum URI

chgrp

功能:改变文件所属的组(只能由文件的所有者或者超级用户执行),使用-R将使改变在目录结构下递归进行(超级用户即运行name node进程的用户)
使用方法:hadoop fs -chgrp [-R] GROUP URI [URI …]
可选项-R:递归改变组

chmod

功能:改变文件的权限
使用方法:hadoop fs -chmod [-R] <MODE[,MODE]… | OCTALMODE> URI [URI …]
可选项-R:递归改变权限

chown

功能:改变文件的拥有者(命令的使用者必须是超级用户)
使用方法:hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]
可选项-R:递归改变组、拥有者

copyFromLocal

功能:从本地上传文件至文件系统
使用方法:hadoop fs -copyFromLocal URI

copyFromLocal

功能:下载至本地
使用方法:hadoop fs -copyToLocal [-ignorecrc] [-crc] URI

copyFromLocal

功能:将文件从源路径复制到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录
使用方法:hadoop fs -cp URI [URI …]
例:hadoop fs -cp dir1 dir2 dir3,将会把dir1和2的文件传到dir3这个目录下

du

功能:显示目录中所有文件的大小,或者当只指定一个文件时,显示此文件的大小
使用方法:hadoop fs -du URI [URI …]

dus

功能:显示文件的大小(同上,过时但可用)
使用方法:hadoop fs -du URI [URI …]

expunge

功能:清空回收站(在开启回收站时,文件被删除后会进入/trash文件夹下。默认6小时后删除)
使用方法:hadoop fs -expunge

get

功能:复制文件到本地文件系统
使用方法:hadoop fs -get [-ignorecrc] [-crc]
可选项-ignorecrc:也会复制CRC校验失败的文件
-crc:复制文件以及CRC信息

getmerge

功能:将一个源目录下的所有文件合并为一个本地文件
使用方法:hadoop fs -getmerge [addnl]

help

功能:显示帮助
使用方法:hadoop fs -help

ls

功能:类似Unix ls,可对文件夹使用也可对文件使用
使用方法:hadoop fs -ls

lsr

功能:ls命令的递归版本。类似于Unix中的ls -R
使用方法:hadoop fs -lsr

mkdir

功能:接受路径指定的uri作为参数,创建这些目录。其行为类似于Unix的mkdir -p,它会自动创建路径中的各级父目录
使用方法:hadoop fs -mkdir

movefromLocal

功能:将本地文件上传至hdfs,并删除本地文件
使用方法:dfs -moveFromLocal

mv

功能:1.将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同的文件系统间移动文件 2.文件改名
使用方法:hadoop fs -mv URI [URI …]

put

功能:从本地文件系统中复制单个或多个源路径到目标文件系统。也支持从标准输入中读取输入写入目标文件系统
使用方法:hadoop fs -put …

rm

功能:删除指定的文件。只删除非空目录和文件
使用方法:hadoop fs -rm URI [URI …]

rmr

功能:rm的递归版本
使用方法:hadoop fs -rmr URI [URI …]

setrep

功能:改变一个文件的副本系数
使用方法:hadoop fs -setrep [-R]
可选项-R:递归所有子路径副本数

stat

功能:返回指定路径的统计信息
使用方法:hadoop fs -stat URI [URI …]

tail

功能:将文件尾部1K字节的内容输出到stdout(默认显示尾部10行)
使用方法:hadoop fs -tail [-f] URI
可选项-f:根据文件描述符进行追踪,当文件改名或被删除,追踪停止

test

功能:检查文件
使用方法:hadoop fs -test -[ezd] URI
可选项-e:检查文件是否存在。如果存在则返回0
-z:检查文件是否是0字节。如果是则返回0
-d:如果路径是个目录,则返回1,否则返回0

text

功能:将源文件输出为文本格式。允许的格式是zip和TextRecordInputStream
使用方法:hadoop fs -text

touchz

功能:创建一个0字节的空文件
使用方法:hadoop fs -touchz URI [URI …]

2.x指令

appendToFile

功能:将本地文件系统中的一个文件或多个文件添加到目标文件系统中,也可以从stdin读取input文件添加到目标文件系统中
用法:hdfs dfs -appendToFile …

count

功能:计算并显示路径或文件的路径深度、文件数、总大小
用法:hdfs dfs -count [-q] [-h]
可选项-q:会额外显示磁盘空间的信息
-h:会将大小显示易读

getfacl

功能:会显示路径的ACL(用户、所属等信息)
用法:hdfs dfs -getfattr [-R] -n name | -d [-e en]
可选项-R:递归
-n:转存拓展属性值
-d:所有和路径相关的拓展属性值都会被转存
-e:检索后编译

setfacl

功能:设置某路径的ACL(可以用来设置目录访问权限)
用法:hadoop fs -setfacl [-R] [-b |-k -m |-x <acl_spec> ] |[–set <acl_spec> ]
可选项-b:移除除基本ACL外ACL限制
-k:移除默认ACL
-R:递归
-m:修改ACL规则
-x:删除某一个ACL

setfattr

功能:设置路径的额外拓展属性
用法:hadoop fs -setfattr -n name [-v value] | -x name
可选项-n:额外属性名
-v:额外属性值
-x:移除额外属性

非fs开头

version

功能:版本信息,包含编译时间及校验码等信息
用法:hadoop version

jar

功能:运行jar文件(用户可以把他们的Map Reduce代码捆绑到jar文件中,使用这个命令执行)
用法:hadoop jar [mainClass] args…
可以附带额外的-input -output -mapper及插件-inputformat等(如-mapper myPythonScript.py即是将该python文件作为mapper)

checknative [-a | -h]

功能:检查本机hadoop和相关库的可用性,编译hadoop后用来检查

distcp

功能:分布式拷贝,用于大规模集群内部和集群之间拷贝的工具,采用Map/Reduce实现文件分发,拷贝时可用mr指令查看进程
(相对于一般的shell拷贝,shell拷贝为单线程,拷贝大量数据慢,且不支持集群拷贝)
用法:hadoop distcp dir1 dir2
(源路径和目标路径都需采用绝对路径;如dir2 不存在,则新建dir2,dir1下文件全部复制到dir2;如dir2 存在,则目录dir1被复制到dir2下,形成dir2/dir1结构)
可选项:
(distcp hadoop1.x可选项)
-p[rbugpcax]:保留源文件的一些状态

-p[rbugpcax]子功能
b块大小
u用户
g
p权限
c校验类型
aACL(访问控制)
xXAttr(文件系统拓展属性)
t时间戳(此选项官方文档没有但部分博客有,存疑)

(当同时指定了更新-update和-p,则只有当创建新文件时(判定条件为文件大小不同)才会将保留的状态同步过去(即不更新的文件不同步)如果指定了-pa限于acl的权限,同步过去的文件也会保留原文件权限)

-update:dir2仅更新dir2下相对dir1下发生变化的文件
-overwrite:保持同样的目录结构同时覆盖原有文件
(使用这两个指令后会改变目录结构:本来是dir2/dir1结构使用后成为dir2)

-i:1.会比没有-i保留更多日志信息,会保留失败的日志(调试重要)
2.如果一个map失败了,会继续尝试运行,不会导致整个作业失败

-log :1.记录日志信息到logdir,并将日志作为map的输出
2.如果一个map失败了,那么重新执行指令时上一个日志不会被保留

-m <num_maps>:指定了拷贝数据时map的最大数目
(如果没使用-m选项,DistCp会尝试在调度工作时指定map的数目 为 min (total_bytes / bytes.per.map, 20 * num_task_trackers), 其中bytes.per.map默认是256MB。
建议对于长时间运行或定期运行的作业,根据源和目标集群大小、拷贝数量大小以及带宽调整map的数目)

-f <urilist_uri>:从文件里获得多个原路径进行拷贝(例:adoop distcp -f srclist dir2)

(distcp hadoop2.x额外可选项)
-delete:删除dir2中有但dir1没有的文件(进垃圾站)

-strategy {dynamic|uniformsize}:复制策略(默认为un),可改变为dyn,即DynamicInputFormat 方式(有空可以开个帖子单独说说)

-bandwidth:可为每个map指定最大带宽(使用方法不明,没google到)

-atomic {-tmp <tmp_dir>}:可通过设置一个临时文件路径将传输文件添加原子性(即文件先分批存储至临时路径,最后成功组合后保存进目标路径,如未成功组合,则删除该临时路径的文件(要么全传,要么传失败什么都没有))

-mapredSslConf <ssl_conf_file>:用来指定一个hsftp 协议文件来对源文件的安全传输属性进行配置

-async:异步运行DistCp ,会跟踪Hadoop Job-id,一旦运行便退出DistCp

archive

功能:创建一个archive文档,一般用于大量小文件的目录保存,减少namenode的消耗
用法:hadoop archive -archiveName NAME *
可选项-archiveName NAME:要创建的档案的名字
例子:hadoop archive -archiveName test.har -p /foo/bar -r /user/hz

credential

功能:证书的管理
用法:hadoop credential [options]

daemonlog

功能:管理日志输出的指令,可查看日志水平或设置日志水平
用法:hadoop daemonlog -getlevel URI | -setlevel URI

classpath

功能:输出classpath
用法:hadoop classpath [–glob |–jar |-h |–help]
可选项-glob:扩展通配符
-jar:jar文件路径

s3guard

功能:为Amazon 相关的S3A路径

trace

功能:查看和修改Hadoop的跟踪设置

trace

功能:执行名称为CLASSNAME的类
用法:hadoop CLASSNAME

key

功能:用来创建/删除Hadoop的key
用法:hadoop key [options]

dfsadmin

功能:一些管理员功能(需使用超级用户执行)
用法:hadoop dfsadmin -report | -safemode <enter | leave | get | wait>
-report:显示hdfs健康情况
-safemode <enter | leave | get | wait>:进入退出安全模式

fsck

功能:通过相关指令检查hdfs健康度
用法:hadoop fsck [-…]

fsck 用法参数
-move 破损的文件移至/lost+found目录
-delete 删除破损的文件
-openforwrite 打印正在打开写操作的文件
-files 打印正在check的文件名
-blocks 打印block报告(需要和-files参数一起使用)
-locations 打印每个block的位置信息(需要和-files参数一起使用)
-racks 打印位置信息的网络拓扑图(需要和-files参数一起使用)
job/pipes

hadoop1.x指令,已被yarn替代

hadoop3.x新增了一些指令,并且有的旧指令增加了额外可选项,有空填一填坑。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值