草庐IT

HDFS常用命令

昱东i 2023-05-22 原文

HDFS常用命令

hdfs 命令最常用的就是: hdfs dfs -[linux的命令]

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

hadoop 常用命令

查看hadoop 命令所有参数:

hadoop
hadoop checknative  // 检查当前版本hadoop内库支持哪些压缩。如果是false,则需要自己编译支持此压缩。如果使用CDH则都支持。

hadoop classpath  // 打印当前hadoop的环境

hadoop jar  // 等价于 yarn jar ,提交jar 包到yarn

hdfs 常用命令

查看hdfs 命令所有参数:

hdfs

hdfs dfsadmin


hdfs dfsadmin -report // 报告当前集群的情况

hdfs dfsadmin -safemode  // 安全模式。

hdfs dfsadmin -safemode leave  // leave代表关闭,安全模式关闭才是读写正常的。

hdfs dfsadmin -safemode enter  // 进入安全模式。如正在做集群维护时,就可以手动进入安全模式,维护完再离开
>Safemode is On     // 安全模式下,能读不能写

// hdfs dfsadmin 还有其他很多参数

hdfs fsck

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

平衡

// hdfs balancer  // 集群平衡。DN1 与 DN2 间节点平衡。封装到脚本,每天晚上定执行
hdfs balancer -policy datanode -threshold 10  // 让 每个节点磁盘使用率,减去平均磁盘使用率 < 10%

// hdfs diskbalancer // 磁盘平衡。DN1中 多块磁盘的平衡。需要确保参数dfs.disk.balancer.enabled=true

执行命令: 先生成计划  再执行 
hdfs diskbalancer -plan ruozedata001  // 生产后会创建一个同名.plan.json文件,执行它
hdfs diskbalancer -execute ruozedata001.plan.json

回收站

linux 没有回收站,可以自己搞
思路:准备脚本,rm 改mv,移动到指定的目录,很多参考。

hdfs 是有回收站的
有参数控制是否启用:fs.trash.interval // 回收站保留时间min,如果为0,代表不启用回收站功能

<property>
        <name>fs.trash.interval</name>
        <value>10080</value>
 </property>
 
开启后的删除操作就会移动

hdfs dfs -ls

hadoop fs -ls 是在 /user/liqiang ; hadoop fs -ls / 是在根目录

hdfs dfs -ls       # 列出工作主目录-用户名路径下的内容
hdfs dfs -ls /     # 列出hdfs 根目录下的内容

hdfs dfs -mkdir

# path可以是绝对路径,也可以是相对路径。
hdfs dfs -mkdir [-p] <path>

hdfs dfs -mkdir tmp   # 在hdfs文件系统中/user/liqiang 目录下创建tmp目录
hdfs dfs -mkdir ./tmp # 

hdfs dfs -mkdir /tmp  # 在hdfs文件系统的根目录下创建一个tmp目录

hdfs dfs -rm -r -f

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

hdfs dfs -appendToFile

# appendToFile命令既可以将一个或多个文件添加到HDFS中,也可以将流中的数据读取到HDFS中。最终都是在hdfs中生成一个文件。
hdfs dfs -appendToFile <localSrc> <dst>

# 将本地文件exp.log上传到hdfs中/user/liqiang/tmp目录,并重命名为:exception.log
hdfs dfs -appendToFile ./exp.log ./tmp/exception.log

# 将本地的test目录传到hdfs中,重命名为tst文件【注意这里并不是目录】。
hdfs dfs -appendToFile ./test ./tst

hdfs dfs -cat

hdfs dfs -cat <URI>

# 查看/user/liqiang/tmp/exception.log 文件内容
hdfs dfs -cat ./tmp/exception.log

hdfs dfs -text

hdfs dfs -text

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

hdfs dfs -find

# 从根目录下精确搜索exception.log文件
hdfs dfs -find / -name exception.log

# 从/user/liqiang目录下搜索名称中包含ex字符串的文件
hdfs dfs -find /user/liqiang -name '*ex*'

hdfs dfs -put

从本地文件系统拷贝文件到hdfs中。

hdfs dfs -put [-f] [-p] [-l] [-d] [-t <thread count>] [ - | <localsrc1> .. ]. <dst>
# -f 如果已存在就覆盖
# -p 递归拷贝

hdfs dfs -put head.png tmp/head.png # 拷贝文件
hdfs dfs -put txt/ tmp/txt          # 将目录txt拷贝到hdfs中的/user/liqiang/tmp/txt

hdfs dfs -get

从hdfs中下载文件到本地文件系统中。

hdfs dfs -get [-ignorecrc] [-crc] [-p] [-f] <src> <localdst>
# -p 保留访问权限 修改时间等信息
# -f 如果目标文件已存在,直接覆盖。

hdfs dfs -get ./tmp ./hdfs-temp-dic # 将hdfs中的tmp目录下载到本地并重命名

hdfs dfs -cp

hdfs dfs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest>
# -f 如果存在,直接覆盖。

hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2
hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir

hdfs dfs -cp tmp ./temp # 将tmp拷贝并重命名为temp

hdfs dfs -count

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

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

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

hdfs dfs -mv

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

hdfs dfs -mv tmp /tmp_home

hdfs dfs -chmod

hdfs dfs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]
# -R 递归目录授权

hdfs dfs -chmod 700 temp # 给temp目录授权700~

hdfs dfs -chown

hdfs dfs -chown [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]

hdfs dfs -chown liqiang:liqiang temp # 更文件改用户组

hdfs dfs -tail

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

# -f 动态输出

hdfs dfs -touch

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

hdfs dfs -touchz

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

有关HDFS常用命令的更多相关文章

  1. 华为常用命令 - 2

    system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100

  2. HDFS+ MapReduce 数据处理与存储实验 - 2

    文章目录实验二:HDFS+MapReduce数据处理与存储实验1.实验目的2.实验环境3.实验内容3.1HDFS部分3.1.1上传文件3.1.2下载文件3.1.3显示文件信息3.1.4显示目录信息3.1.5删除文件3.1.6移动文件3.2MapReduce部分3.2.0Mapreduce原理3.2.1合并和去重3.2.1.1编写Merge.java代码3.2.1.2编译执行3.2.2文件的排序3.2.2.1编写Sort.java代码3.2.2.2编译执行4.踩坑记录5.心得体会6.源码附录6.1Merge.java完整代码6.2Sort.java完整代码实验二:HDFS+MapReduce数据

  3. git常用命令 - 2

    gitclonehttp:www.git.com.cn........ 克隆git项目gitbranch 查看分支gitbranch-r查看远程分支gitpushorigin--delete分支名 删除远程分支tmpgitcheckout切换分支gitcheckout-b切换并创建分支gitcheckout-b分支名origin/分支名(如果远程分支已存在最好用此命令,在创建分支时会把远程分支最新代码一并拉下来,不会把原分支代码带过来)gitbranch-D删除分支gitpushorigin--delete分支名gitpush--set-upstreamorigin分支名 推送本地分支到远端g

  4. go - 为什么 HDFS 使用 golang 抛出意外的 EOF 错误? - 2

    packagemainimport("fmt""github.com/colinmarc/hdfs")funcmain(){client,err:=hdfs.New("192.168.0.38:50070")fs,err:=client.ReadDir("/")fmt.Println(err)fmt.Println(fs)}err是意外的EOF而且我发现错误发生在func(c*NamenodeConnection)readResponse(methodstring,respproto.Message)error{..._,err=io.ReadFull(c.conn,packet)..

  5. hadoop - HDFS 排除 AddblockRequestProto 中的数据节点 - 2

    我正在为HDFS中的写入实现一个数据节点故障转移,当block的第一个数据节点发生故障时,HDFS仍然可以写入一个block。算法是。首先,将识别故障节点。然后,请求一个新block。HDFSportapi提供了excludeNodes,我用它来告诉Namenode不要在那里分配新的block。failedDatanodes被识别为失败的数据节点,它们在日志中是正确的。req:=&hdfs.AddBlockRequestProto{Src:proto.String(bw.src),ClientName:proto.String(bw.clientName),ExcludeNodes:f

  6. Git的常用命令介绍 - 2

    Git整体工作流程:Workspace:工作区Index/Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、版本仓库: 1.通过命令gitinit把这个目录变成git可以管理的仓库(这就欧科啦)(会生成.git文件)默认.git文件不显示2.gitadd xxxxx (将工作区的指定文件添加到暂存区中)              没有任何提示,说明已经添加成功了3.gitcommit-m ‘一些提交注释’(把文件提交到本地仓库)4.gitstatus (查看是否有文件没有被提交)     展示说明没有任何文件未提交,但是我现在继续来改下readme.txt内

  7. FFmpeg常用命令汇总 - 2

    FFmpeg的命令繁多,为了方便查询,在此作一个汇总可参考:https://ffmpeg.org/ffmpeg.html#Options目录一、命令基本格式及参数二、基本信息查询命令三、分解、复用四、处理原始数据五、滤镜六、拼接与裁剪七、直播八、ffplay九、其它一、命令基本格式及参数ffmpeg[global_options]{[input_file_options]-iinput_url}... {[output_file_options]output_url}...一些参数:参数说明-ffmt(输入/输出)强制输入或输出文件格式-y(全局参数)覆盖输出文件而不询问-n(全局参

  8. 分布式文件系统HDFS之利用Java API与HDFS进行交互 - 2

    文章目录一、环境要求二、在Ubuntu中安装Eclipse三、在Eclipse创建项目四、为项目添加需要用到的JAR包五、编写Java应用程序代码 总结前言Hadoop不同的文件系统之间通过调用JavaAPI进行交互,利用JavaAPI进行交互,需要利用软件Eclipse编写Java程序。一、环境要求已经配置好网络的Ubuntu系统的虚拟机Ubuntu16.0464位hadoop-3.1.3.tar,可在官网下载或者点击下载(提取码:0412)jdk-8u162-linux-x64.tar二、在Ubuntu中安装Eclipse 利用Ubuntu左侧边栏自带的软件中心安装软件,在Ubuntu左侧

  9. Hadoop-HDFS详解与HA,完全分布式集群搭建(细到令人发指的教程) - 2

    前言本篇篇幅较长,有许多集群搭建干货,和枯燥乏味但是面试可能问到的理论知识。思来想去不知道怎样才能鼓励自己加油学习,想想要面对的生活还是假吧意思打开学习视频吧。目录一、引入hdfs是什么hdfs的由来hdfs架构体系hdfs的优缺点优点缺点二、HDFS_block简介和注意事项Block拆分标准三、HDFS_block安全与管理Block数据安全Block 的管理效率四、HDFS_Hadoop3完全分布式集群的搭建1.集群的网络和节点规划网络规划节点规划2.Hadoop下载与安装3.配置Hadoop集群配置环境变量配置分布式集群环境分发Hadoop集群安装目录及文件启动和停止Hadoop集群验

  10. hadoop基础:通过 Shell 命令访问 HDFS - 2

    文章目录1.HDFSShell概述1.1操作命令管理命令其他命令1.HDFSShell概述HDFSShell是由一系列类似LinuxShell的命令组成的。命令大致可分为操作命令、管理命令、其他命令三类1.1操作命令操作命令是以“hdfsdfs”开头的命令。通过这些命令,用户可以完成HDFS文件的复制、删除和查找等操作,Shell命令的一般格式如下。hdfsdfs[通用选项]其中,hdfs是Hadoop系统在Linux系统中的主命令;dfs是子命令,表示执行文件系统操作;通用选项由HDFS文件操作命令和操作参数组成。(1)创建文件夹命令:hdfsdfs-mkdir[-p]-p]:表示如果父目录

随机推荐