HDFS Basic Operation

时间:2021-03-18 09:05:37

1、如何启动一个命令行的hadoop客户端

任何一个Hadoop集群中的节点,只要有hadoop安装包,就可以通过# hadoop fs来启动

2、Hadoop基本命令格式

# hadoop  fs  -cmd  <args>

3、上传文件到HDFS 集群

 hadoop fs  -put

# hadoop  fs  -put   本地文件   hdfs文件          # hdfs文件的父目录一定要存在,否则不执行

# hadoop  fs  -put    本地文件/目录   hdfs目录      # hdfs目录一定要存在,否则不执行

# hadoop fs  -put   -   hdfs文件              # - 表示从键盘读取输入, 保存到hdfs文件,ctrl+d结束,hdfs文件不能存在,否则不执行

hadoop fs   -moveFromLocal

# hadoop  fs  -moveFromLocal  <local src> …..  <hdfs dst>

和put命令类似,命令执行后源文件从本地删除,也可以从键盘读取输入

hadoop fs  -copyFromLocal

# hadoop  fs   -copyFromLocal <local src>…. <hdfs dst>

4、 从HDFS集群下载文件

hadoop fs  -get  <hdfs file>   <local file or dir>

# local file不能和hdfs file重名,否则提示文件已存在,不重名才下载

# localfile不写则下载到本地的当前目录,生成同名文件

hadoop  fs  -get  <hdfs file> …….. <local dir>

下载多个hdfs文件到本地目录

注意:如果不是root用户,要使用本用户的本地目录,权限问题

hadoop  fs  -copyToLocal   <hdfs src>…..<local dst>

5、 查看HDFS集群文件目录  hadoop fs  -ls /

# hadoop  fs  -ls   /              列出根目录下的目录和文件

# hadoop fs   -ls  -R  /         -R,recursively

6、 创建HDFS下的目录  hadoop fs  -mkdir

# hadoop fs  –mkdir  <hdfs path>            # 一级一级创建,父目录不存在会报错

# hadoop fs  -mkdir  -p   <hdfs path>      # 递归创建多级目录,从外到内

7、 删除HDFS下的目录或文件  hadoop fs –rm –r

# hadoop  fs  -rm  <hdfs file>……        # 每次可以删除多个文件

# hadoop fs –rm –r <hdfs dir> …….     # 每次可以删除多个目录

# hadoop  fs  -rmr   <hdfs dir>……..     # -rmr  = -rm  -r

8 、HDFS内的文件拷贝 hadoop fs -cp

# hadoop fs –cp <hdfs src> <hdfs dst>

目标文件不能存在,否则命令不执行(给源文件重命名并保存)

# hadoop fs –cp <hdfs file or dir>  <hdfs dir>

目标目录要存在,否则不执行

9、 HDFS中的文件移动 hadoop fs -mv

# hadoop fs  -mv <hdfs file>  <hdfs file>

目标文件不能存在(文件重命名并保存,源文件不存在)

# hadoop fs –mv <hdfs file or dir> …… <hdfs dir>

源文件多个,目标必须是目录,且必须存在

10、 HDFS中的文件统计

hadoop fs -count

# hadoop fs –count <hdfs path>

统计路径下的:目录个数、文件个数、文件总计大小

hadoop fs -du

# hadoop fs –du <hdfs path>

每个文件夹和文件的大小, -du  disk usage

# hadoop fs –du –h <hdfs path>

每个文件夹和文件的大小,-h  human readable

# hadoop fs –du  –s <hdfs path>

所有文件的和的大小, -s, summary

11、 HDFS文件以文本格式输出 hadoop fs –text

# hadoop fs –text <hdfs file>

将文本文件或某些格式的非文本文件,通过文本格式输出到console

12、 修改HDFS文件副本数 hadoop fs – setrep 2

# hadoop fs –setrep –R 2 <hdfs path>

将指定目录下的文件做递归修改,-R recursively, 2修改后的副本数

13、 HDFS多个文件排序合并到本地文件 hadoop fs -getmerge

# hadoop fs –getmerge  <hdfs dir>  <local file>

将hdfs指定目录下的所有文件排序后合并输出到指定本地文件,文件不存在则自动创建,存在则覆盖写入

# hadoop fs –getmerge –nl <hdfs dir>  <local file>

合并到local file中的不同hdfs文件之间会空出一行