hadoop常用命令总结

1、启动hadoop
start-all.sh等价于start-dfs.sh + start-yarn.sh

3、常用命令

    1、查看指定目录下内容

   hdfs dfs –ls [文件目录]

    hdfs dfs -ls -R   /                   //显式目录结构

    eg: hdfs dfs –ls /user/wangkai.pt

   2、打开某个已存在文件

    hdfs dfs –cat [file_path]

   eg:hdfs dfs -cat /user/wangkai.pt/data.txt

  3、将本地文件存储至hadoop

     hdfs dfs –put [本地地址] [hadoop目录]

     hdfs dfs –put /home/t/file.txt  /user/t  

  4、将本地文件夹存储至hadoop

    hdfs dfs –put [本地目录] [hadoop目录] 
    hdfs dfs –put /home/t/dir_name /user/t

   (dir_name是文件夹名)

  5、将hadoop上某个文件down至本地已有目录下

     hadoop dfs -get [文件目录] [本地目录]

     hadoop dfs –get /user/t/ok.txt /home/t

  6、删除hadoop上指定文件

     hdfs  dfs –rm [文件地址]

     hdfs dfs –rm /user/t/ok.txt

  7、删除hadoop上指定文件夹(包含子目录等)

     hdfs dfs –rm [目录地址]

     hdfs dfs –rmr /user/t

  8、在hadoop指定目录内创建新目录

      hdfs dfs –mkdir /user/t

      hdfs  dfs -mkdir - p /user/centos/hadoop 

  9、在hadoop指定目录下新建一个空文件

    使用touchz命令:

    hdfs dfs  -touchz  /user/new.txt

  10、将hadoop上某个文件重命名

   使用mv命令:

   hdfs dfs –mv  /user/test.txt  /user/ok.txt   (将test.txt重命名为ok.txt)

  11、将hadoop指定目录下所有内容保存为一个文件,同时down至本地

   hdfs dfs –getmerge /user /home/t

  12、将正在运行的hadoop作业kill掉

   hadoop job –kill  [job-id]

  13.查看帮助

  hdfs dfs -help        

  14.超级用户修改目录用户,用户组

  sudo -u root hadoop fs -chown  root:root  /home/mylog

  hdfs dfs -chown    

7、补充

1.对hdfs操作的命令格式是hdfs dfs  
1.1 -ls 表示对hdfs下一级目录的查看
1.2 -lsr 表示对hdfs目录的递归查看
1.3 -mkdir 创建目录
1.4 -put 从Linux上传文件到hdfs
1.5 -get 从hdfs下载文件到linux
1.6 -text 查看文件内容
1.7 -rm 表示删除文件
1.7 -rmr 表示递归删除文件
2.hdfs在对数据存储进行block划分时,如果文件大小超过block,那么按照block大小进行划分;不如block size的,划分为一个块,是实际数据大小。
*****PermissionDenyException  权限不足**********  
hadoop常用命令:  
hdfs dfs  查看Hadoop HDFS支持的所有命令   
hdfs dfs –ls  列出目录及文件信息   
hdfs dfs –lsr  循环列出目录、子目录及文件信息   
hdfs dfs –put test.txt /user/sunlightcs  将本地文件系统的test.txt复制到HDFS文件系统的/user/sunlightcs目录下   
hdfs dfs –get /user/sunlightcs/test.txt .  将HDFS中的test.txt复制到本地文件系统中,与-put命令相反   
hdfs dfs –cat /user/sunlightcs/test.txt  查看HDFS文件系统里test.txt的内容   
hdfs dfs –tail /user/sunlightcs/test.txt  查看最后1KB的内容   
hdfs dfs –rm /user/sunlightcs/test.txt  从HDFS文件系统删除test.txt文件,rm命令也可以删除空目录   
hdfs dfs –rmr /user/sunlightcs  删除/user/sunlightcs目录以及所有子目录   
hdfs dfs –copyFromLocal test.txt /user/sunlightcs/test.txt  从本地文件系统复制文件到HDFS文件系统,等同于put命令   
hdfs dfs –copyToLocal /user/sunlightcs/test.txt test.txt  从HDFS文件系统复制文件到本地文件系统,等同于get命令   
hdfs dfs –chgrp [-R] /user/sunlightcs  修改HDFS系统中/user/sunlightcs目录所属群组,选项-R递归执行,跟linux命令一样   
hdfs dfs –chown [-R] /user/sunlightcs  修改HDFS系统中/user/sunlightcs目录拥有者,选项-R递归执行   
hdfs dfs –chmod [-R] MODE /user/sunlightcs  修改HDFS系统中/user/sunlightcs目录权限,MODE可以为相应权限的3位数或+/-{rwx},选项-R递归执行
hdfs dfs –count [-q] PATH  查看PATH目录下,子目录数、文件数、文件大小、文件名/目录名   
hdfs dfs –cp SRC [SRC …] DST       将文件从SRC复制到DST,如果指定了多个SRC,则DST必须为一个目录   
hdfs dfs –du PATH  显示该目录中每个文件或目录的大小   
hdfs dfs –dus PATH  类似于du,PATH为目录时,会显示该目录的总大小   
hdfs dfs –expunge  清空回收站,文件被删除时,它首先会移到临时目录.Trash/中,当超过延迟时间之后,文件才会被永久删除   
hdfs dfs –getmerge SRC [SRC …] LOCALDST [addnl]      获取由SRC指定的所有文件,将它们合并为单个文件,并写入本地文件系统中的LOCALDST,选项addnl将在每个文件的末尾处加上一个换行符   
hdfs dfs –touchz PATH   创建长度为0的空文件   
hdfs dfs –test –[ezd] PATH     对PATH进行如下类型的检查:  -e PATH是否存在,如果PATH存在,返回0,否则返回1  -z 文件是否为空,如果长度为0,返回0,否则返回1  -d 是否为目录,如果PATH为目录,返回0,否则返回1   
hdfs dfs –text PATH  显示文件的内容,当文件为文本文件时,等同于cat,文件为压缩格式(gzip以及hadoop的二进制序列文件格式)时,会先解压缩    hdfs dfs –help ls  查看某个[ls]命令的帮助文档

<think>好的,用户现在想了解如何在Hadoop中查找文件的命令。我需要根据提供的引用资料来回答这个问题。首先,我应该回忆Hadoop的常用文件系统命令。根据引用[3]提到的,所有的Hadoop命令都是通过bin/hadoop脚本来调用的,所以在没有参数的情况下运行会显示命令描述。不过用户的问题是关于查找文件的命令,这通常涉及到hadoop fs或hdfs dfs命令。 接下来,我需要看看用户提供的引用中有没有相关的命令。引用[1]提到了hadoop fs -truncate的使用,引用[2]提到了hadoop fs -moveFromLocal,而引用[4]是关于文件格式的,可能不直接相关。不过这些例子表明用户可能在使用hadoop fs命令来操作文件系统。 查找文件通常需要使用类似于Linux中的ls或者find命令。在Hadoop中,hadoop fs -ls可以列出目录中的内容,但用户可能需要递归查找或者按名称匹配文件。例如,-ls -R可以递归列出所有子目录中的文件。此外,Hadoop的find命令可能类似于Unix的find,用来根据文件名模式查找文件。但需要确认具体的语法选项是否正确。 根据我的知识,Hadoop的fs -find命令可以用来查找文件,语法类似于hadoop fs -find <路径> -name <模式>。例如,hadoop fs -find /user -name "*.txt"会查找/user目录下所有.txt文件。不过需要确保这个命令在用户使用的Hadoop版本中存在,因为不同版本可能有所不同。根据引用[3]中的信息,用户应该查看他们的Hadoop版本的文档,或者直接运行hadoop fs -help find来获取帮助。 此外,还可以使用通配符配合-ls命令进行查找,比如hadoop fs -ls /user/*/file*,这样可以列出匹配特定模式的文件。但这种方法不如find命令灵活,特别是需要递归查找时。 总结来说,用户的问题可以通过两种方式解决:使用find命令进行递归查找,或者结合ls命令通配符进行模式匹配。同时,建议用户查阅官方文档或使用-help选项来获取更详细的帮助信息,如引用[3]所述。在回答时,需要确保语法正确,例如正确的参数顺序选项使用,并提醒用户注意路径的正确性以及通配符的使用方式。</think>### Hadoop 查找文件命令使用指南 在Hadoop中查找文件主要通过以下命令实现: --- #### **1. 使用 `hadoop fs -ls` 递归查看目录内容** 通过 `-ls -R` 参数可**递归列出目录及其子目录下的所有文件**,支持通配符匹配文件名: ```bash hadoop fs -ls -R /目标目录路径 | grep "关键字" # 示例:查找 /user 目录下所有含 "log" 的文件 hadoop fs -ls -R /user | grep "log" ``` --- #### **2. 使用 `hadoop fs -find` 精确查找文件** `-find` 命令支持**按文件名、修改时间等条件搜索**,语法类似 Unix `find`: ```bash hadoop fs -find <路径> -name "文件名模式" [其他条件] # 示例:查找 /data 目录下所有 .csv 文件 hadoop fs -find /data -name "*.csv" ``` --- #### **注意事项** - **通配符规则**:`*` 匹配任意字符,`?` 匹配单个字符(需用引号包裹模式) - **路径格式**:支持 HDFS 完整路径(如 `hdfs://namenode:port/path`)或简写路径 - **权限检查**:确保用户对目标路径有读取权限[^3] --- #### **相关实践问题** 1. 如何通过时间范围筛选文件? **答**:使用 `-mtime` 参数,如 `hadoop fs -find /logs -mtime -7`(查找7天内修改的文件) 2. 如何统计找到的文件数量? **答**:结合管道符统计结果,例如 `hadoop fs -find /data -name "*.log" | wc -l` 3. Hadoop 不同存储格式(如 ORC/Parquet)会影响查找效率吗? **答**:文件格式主要影响**读取性能**,查找操作依赖元数据管理,与存储格式无关[^4] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值