【Hadoop---05】HDFS常用命令 『Hadoop常用命令』

1. 基本语法

使用Hadoop命令的两种方式:

  1. hadoop fs -具体命令 命令参数【推荐用这种方式】
  2. hdfs dfs -具体命令 命令参数:底层还是调用hadoop fs 具体命令
  • l两者区别:前者可操作任意文件系统,不仅仅是hdfs文件系统,还能操作本地、谷歌GFS等,使用范围更广;后者只能操作hdfs文件系统。

注意:因为配置了$HADOOP_HOME及相关环境变量。所以可以在linux系统的任意地方敲上面的命令。

2. 查看帮助信息

  1. 查看所有命令:hadoop fs
  2. 查看某个命令细节:hadoop fs -help 具体命令,如:hadoop fs -help rm

3. 常用命令

3.1 文件相关命令

  1. 打印目录:hadoop fs -ls /

  2. 创建文件夹:hadoop fs -mkdir /wcinput

  3. 删除文件:hadoop fs -rm /wcoutput
    -rm用于删除非递归文件夹/文件
    -rmr用于递归删除文件夹

  4. 剪切粘贴文件:hadoop fs -mv 原文件地址 目标文件地址 会删除源文件

  5. 复制粘贴:hadoop fs -cp 原文件地址 目标文件地址 不会删除源文件

  6. 修改权限位:hadoop fs -chmod 777 /a.txt

  7. 修改文件拥有者和所属组:

    1. 只修改拥有者:hadoop fs -chown hao /a.txt
    2. 同时修改拥有者和所属组:hadoop fs -chown hao:root /a.txt
  8. 打印文本内容:

    1. 全部: hadoop fs -cat /a.txt
    2. 前5行:hadoop fs -cat /test/gonganbu/scene_analysis_suggestion/* | head -n 5
    3. 末尾5行:hadoop fs -cat /test/gonganbu/scene_analysis_suggestion/* | tail -n 5
    4. 打印文本末尾1KB内容:hadoop fs -tail /a.txt
  9. 查看文件属性:

    1. 查看文本行数:hadoop fs -cat hdfs://172.16.0.226:8020/test/sys_dict/sysdict_case_type.csv |wc -l

    2. 查看文件大小(单位byte):hadoop fs -du -s -h hdfs://172.16.0.226:8020/test/sys_dict/* 可选参数
      hadoop fs -du用于显示Hadoop分布式文件系统(HDFS)中指定目录或文件的大小
      在这里插入图片描述
      -s列出总大小,不加该参数时会列出文件夹下每个文件大小
      -h以适当的单位展示

      可以一次性查看多个文件:
      在这里插入图片描述

    3. 查看文件夹大小:hadoop fs -dus 集群文件夹

    4. 查看文件数量:hadoop fs -count hdfs://172.16.0.226:8020/test/sys_dict/*

  10. 将文本文件或某些格式的非文本文件通过文本格式输出:hadoop fs -text < hdsf file>

  11. 测试文件/目录是否存在:hadoop fs -test -[ezd] URI (在开发中会遇到)
    在这里插入图片描述

    hadoop fs -Dhadoop.job.ugi=xxx,xxx -fs.default.name=afs://kunpeng.afs:9902 -test -e "/user/vinovel/settlement/share/cep/xiaoshuo$DATE"
    

3.2 变量

  1. 打印变量值:hadoop fs -echo $PATH

3.2 上传 / 下载 命令

  1. 本地–>服务器

    1. 剪切上传:hadoop fs -moveFromLocal shuguo.txt /sanguo
    2. 复制上传
      1. hadoop fs -copyFromLocal weiguo.txt /sanguo
      2. hadoop fs -put aa.txt /wcinput/aa.txt

        注意:上传时,目的地址是文件地址,并不是文件夹地址!!!所以是/wcinput/aa.txt不是/wcinput/

        # 实际使用例子
        /home/work/env/hadoop_env/hadoop-client/hadoop/bin/hadoop fs -D hadoop.job.ugi=xxx -D fs.default.name=afs://tianqi.afs.baidu.com:9902 -put bbsJob.jar /user/feed/biglog/bbs/jar/bbsJob.jar
        
        # /home/work/env/hadoop_env/hadoop-client/hadoop/bin/hadoop 是没有配置环境变量下,执行hadoop
        # -D 是设置hadoop的参数
        	# hadoop.job.ugi用于指定ugi账号密码
        	# fs.default.name用于指定集群地址
        # -put 是用于上传文件
        
      3. 细节:不支持覆盖写入,使用"put"命令将本地的一个文件写入到HDFS中已经存在的同名文件时,系统会报错。可以先删除,在写入
        hadoop fs -rm /path/to/existingfile
        hadoop fs -put /local/path/newfile /path/to/existingfile
        
  2. 服务器–>本地

    1. 复制下载
      1. hadoop fs -copyToLocal /sanguo/shuguo.txt ./
      2. hadoop fs -get /wcinput/aa.txt a.txt

3.3 查看覆盖配置信息

  1. 设置或覆盖 Hadoop 配置参数:-D

    hadoop fs -D hadoop.job.ugi=username,password -D fs.default.name=afs://tianqi.afs.baidu.com:9902 -ls /user/username
    # -D hadoop.job.ugi=username,password  是设置ugi
    # -D fs.default.name=afs://tianqi.afs.baidu.com:9902 是设置集群地址
    

3.4 其他

  • 追加一个文件到已经存在的文件末尾:hadoop fs -appendToFile liubei.txt /sanguo/shuguo.txt : liubei.txt追加到shuguo.txt文件末尾

  • 设置HDFS中文件副本数量:hadoop fs -setrep 10 /jinguo/weiguo.txt

    注意:设置/jinguo/weiguo.txt的副本数量为10个副本。但是我们目前集群中只有3台服务器,所以最多只有3个副本,此时 hdfs 会先将 /jinguo/weiguo.txt副本数量设置为10,等将来节点数量如果增加了,就会在新节点中也备份/jinguo/weiguo.txt副本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ElegantCodingWH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值