HDFS常用命令

- 日理万妓 2024-04-07 16:12 195阅读 0赞

hdfs 命令最常用的就是:

  1. hdfs dfs -[linux的命令]

通过查看Hadoop的命令 与 hdfs 的命令并不相同,且不存在包含关系。仅仅是 hadoop fs 与 hdfs dfs 可以等价。

hadoop 常用命令

查看hadoop 命令所有参数:

  1. hadoop
  2. hadoop checknative // 检查当前版本hadoop内库支持哪些压缩。如果是false,则需要自己编译支持此压缩。如果使用CDH则都支持。
  3. hadoop classpath // 打印当前hadoop的环境
  4. hadoop jar // 等价于 yarn jar ,提交jar 包到yarn

hdfs 常用命令

查看hdfs 命令所有参数:

  1. hdfs

hdfs dfsadmin

  1. hdfs dfsadmin -report // 报告当前集群的情况
  2. hdfs dfsadmin -safemode // 安全模式。
  3. hdfs dfsadmin -safemode leave // leave代表关闭,安全模式关闭才是读写正常的。
  4. hdfs dfsadmin -safemode enter // 进入安全模式。如正在做集群维护时,就可以手动进入安全模式,维护完再离开
  5. >Safemode is On // 安全模式下,能读不能写
  6. // hdfs dfsadmin 还有其他很多参数

hdfs fsck

  1. hdfs fsck // 对hdfs 做检查。如发现 Target Replicas is 3 but 1 live replica(s) 代表有副本丢失。文件权限后的数据就代表当前文件本来需有多少副本

平衡

  1. // hdfs balancer // 集群平衡。DN1 与 DN2 间节点平衡。封装到脚本,每天晚上定执行
  2. hdfs balancer -policy datanode -threshold 10 // 让 每个节点磁盘使用率,减去平均磁盘使用率 < 10%
  3. // hdfs diskbalancer // 磁盘平衡。DN1中 多块磁盘的平衡。需要确保参数dfs.disk.balancer.enabled=true
  4. 执行命令: 先生成计划 再执行
  5. hdfs diskbalancer -plan ruozedata001 // 生产后会创建一个同名.plan.json文件,执行它
  6. hdfs diskbalancer -execute ruozedata001.plan.json

回收站

  1. linux 没有回收站,可以自己搞
  2. 思路:准备脚本,rm mv,移动到指定的目录,很多参考。
  3. hdfs 是有回收站的
  4. 有参数控制是否启用:fs.trash.interval // 回收站保留时间min,如果为0,代表不启用回收站功能
  5. <property>
  6. <name>fs.trash.interval</name>
  7. <value>10080</value>
  8. </property>
  9. 开启后的删除操作就会移动

hdfs dfs -ls

  1. hadoop fs -ls 是在 /user/liqiang ; hadoop fs -ls / 是在根目录
  2. hdfs dfs -ls # 列出工作主目录-用户名路径下的内容
  3. hdfs dfs -ls / # 列出hdfs 根目录下的内容

hdfs dfs -mkdir

  1. # path可以是绝对路径,也可以是相对路径。
  2. hdfs dfs -mkdir [-p] <path>
  3. hdfs dfs -mkdir tmp # 在hdfs文件系统中/user/liqiang 目录下创建tmp目录
  4. hdfs dfs -mkdir ./tmp #
  5. hdfs dfs -mkdir /tmp # 在hdfs文件系统的根目录下创建一个tmp目录

hdfs dfs -rm -r -f

  1. hdfs dfs -rm [-r] [-f] <uri> # 删除目录或文件,-r -f不能组合成-rf
  2. hdfs dfs -rm -r -f /test # 删除根目录下的test目录
  3. hdfs dfs -rmdir /test # 删除目录:只能删除空目录

hdfs dfs -appendToFile

  1. # appendToFile命令既可以将一个或多个文件添加到HDFS中,也可以将流中的数据读取到HDFS中。最终都是在hdfs中生成一个文件。
  2. hdfs dfs -appendToFile <localSrc> <dst>
  3. # 将本地文件exp.log上传到hdfs中/user/liqiang/tmp目录,并重命名为:exception.log
  4. hdfs dfs -appendToFile ./exp.log ./tmp/exception.log
  5. # 将本地的test目录传到hdfs中,重命名为tst文件【注意这里并不是目录】。
  6. hdfs dfs -appendToFile ./test ./tst

hdfs dfs -cat

  1. hdfs dfs -cat <URI>
  2. # 查看/user/liqiang/tmp/exception.log 文件内容
  3. hdfs dfs -cat ./tmp/exception.log

hdfs dfs -text

  1. # 查看文件内容,支持压缩文件的查看而不会乱码
  2. hdfs dfs -text ./tmp/exception.log

hdfs dfs -find

  1. # 从根目录下精确搜索exception.log文件
  2. hdfs dfs -find / -name exception.log
  3. # 从/user/liqiang目录下搜索名称中包含ex字符串的文件
  4. hdfs dfs -find /user/liqiang -name '*ex*'

hdfs dfs -put

  1. 从本地文件系统拷贝文件到hdfs中。
  2. hdfs dfs -put [-f] [-p] [-l] [-d] [-t <thread count>] [ - | <localsrc1> .. ]. <dst>
  3. # -f 如果已存在就覆盖
  4. # -p 递归拷贝
  5. hdfs dfs -put head.png tmp/head.png # 拷贝文件
  6. hdfs dfs -put txt/ tmp/txt # 将目录txt拷贝到hdfs中的/user/liqiang/tmp/txt

hdfs dfs -get

  1. hdfs中下载文件到本地文件系统中。
  2. hdfs dfs -get [-ignorecrc] [-crc] [-p] [-f] <src> <localdst>
  3. # -p 保留访问权限 修改时间等信息
  4. # -f 如果目标文件已存在,直接覆盖。
  5. hdfs dfs -get ./tmp ./hdfs-temp-dic # 将hdfs中的tmp目录下载到本地并重命名

hdfs dfs -cp

  1. hdfs dfs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest>
  2. # -f 如果存在,直接覆盖。
  3. hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2
  4. hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
  5. hdfs dfs -cp tmp ./temp # 将tmp拷贝并重命名为temp

hdfs dfs -count

统计目录下文件夹数量 文件数量 目录下文件总字节数。

  1. hadoop fs -count [-q] [-h] [-v] [-x] [-t [<storage type>]] [-u] [-e] [-s] <paths>\
  2. hdfs dfs -count /user/test # 对/user/test 目录进行统计

结果每列含义:目录数 文件数 总大小(字节) 目录名称

hdfs dfs -mv

  1. hdfs dfs -mv URI [URI ...] <dest>
  2. # mv命令只能在hdfs文件系统中使用,不能跨系统。
  3. hdfs dfs -mv tmp /tmp_home

hdfs dfs -chmod

  1. hdfs dfs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]
  2. # -R 递归目录授权
  3. hdfs dfs -chmod 700 temp # 给temp目录授权700~

hdfs dfs -chown

  1. hdfs dfs -chown [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]
  2. hdfs dfs -chown liqiang:liqiang temp # 更文件改用户组

hdfs dfs -tail

  1. hadoop fs -tail [-f] URI # 输出文件的末尾输出到控制台
  2. # -f 动态输出

hdfs dfs -touch

  1. hdfs dfs -touch [-a] [-m] [-t TIMESTAMP] [-c] URI [URI ...]

hdfs dfs -touchz

  1. hdfs dfs -touchz URI [URI ...] # 创建一个长度为0的文件

发表评论

表情:
评论列表 (有 0 条评论,195人围观)

还没有评论,来说两句吧...

相关阅读

    相关 HDFS命令

    hdfs 命令最常用的就是: hdfs dfs -[linux的命令] 通过查看Hadoop的命令 与 hdfs 的命令并不相同,且不存在包含关系。仅仅是 hado