Hadoop常用命令
3. put 命令
put 命令等同于 copyFromLocal,用于将本地系统的文件或文件夹复制到 HDFS 上,其语法格式如下:
hadoop fs -put [-f] [-p] <localsrc> <dst>
hadoop fs -copyFromLocal [-f] [-p] <localsrc> <dst>
其中各项说明如下:
-f:覆盖目标文件。
-p:保留访问和修改时间、权限。
4. get 命令
get 命令等同于 copyToLocal,用于将 HDFS 的文件或文件夹复制到本地文件系统上,其语法格式如下:
hadoop fs -get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>
hadoop fs -copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>
-p:保留访问和修改时间、权限。
-ignoreCrc:跳过对下载文件的CRC检查。
-crc:为下载的文件写的CRC校验和,在本地文件系统生成一个.xxx.crc的校验文件。
2. getmerge 命令
getmerge 命令用于合并下载多个文件,指定一个源目录和一个目标文件,将源目录中所有的文件合并并排序地连接成本地的一个目标文件。其语法格式如下:
hadoop fs -getmerge [-nl] <src> <localdst>
其中,-nl参数用于在每个文件的末尾添加一个换行符。
示例:
准备任意3个文件,分别命名为1.txt、2.txt和3.txt,在这3个文件里写入任意内容,这里我分别写入了1,2,3,将这3个文件上传到 HDFS 的/merge(若没有先创建)目录下,创建目录和上传文件的命令如下所示:
hadoop fs -mkdir /merge
hadoop fs -put 1.txt 2.txt 3.txt /merge
上传成功后,使用 getmerge 命令合并下载这3个文件到目标文件 /root/merge.txt 中,命令如下所示:
== Hadoop 集群管理脚本==
hadoop [‐‐config confdir] COMMAND
–config:是用于设置 Hadoop 配置文件目录,默认目录为 $HADOOP_HOME/etc/hadoop/。
COMMAND:是指具体的某个命令,常用的命令有:
- fs:HDFS 管理命令
- jar:作业提交命令
- version:查看Hadoop版本
追加和合并文本内容命令
- appendToFile 命令
appendToFile 命令用于追加一个或多个文件内容到已经存在的文件末尾,其语法格式如下:
hadoop fs -appendToFile <localsrc> ... <dst>
注意:HDFS文件不能进行修改,但是可以进行追加。
示例:
准备任意1个或多个文件(内容随意),将其追加到 README.txt 文件中:
hadoop fs -appendToFile 1.txt 2.txt /hadoop2.7.7/data/README.txt
统计命令
- count 命令
count 命令用于统计指定目录下的目录数、文件数和字节数。其语法格式如下:
hadoop fs -count [-h] <path>
其中,-h 参数使用便于操作人员读取的单位信息格式。
2. df 命令
df 命令用于统计文件系统的容量、可用空间和已用空间信息。其语法格式如下:
hadoop fs -df [-h] [<path> ...]
3. du 命令
du 命令用于显示指定目录下所有文件和文件夹的大小,或者当只指定一个文件时,显示此文件的大小。其语法格式如下:
hadoop fs -du [-s] [-h] <path>
其中各项说明如下:
-s:不显示指定目录下每个单独文件的大小,只统计目录所占用空间的总大小。
-h:使用便于操作人员读取的单位信息格式。
设置副本命令
setrep 命令用于改变 HDFS 中文件的副本系数。其语法格式如下:
hadoop fs -setrep [-R] <rep> <path>
其中,-R 参数用于递归改变指定目录下所有文件的副本系数。