ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

hadoop入门(6):HDFS命令

2022-02-26 11:02:41  阅读:207  来源: 互联网

标签:files HDFS 入门 ... 打印 hadoop 文件 如果 目录


常用命令

HDFS文件操作命令风格有两种
两种命令效果一样

hdfs dfs 开头

hadoop fs 开头

查看帮助信息

hdfs dfs -help [cmd]
hadoop  fs -help [cmd]  # 两个命令等价

查看指定目录文件列表

  • -ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [-e] [<path> ...]
  -C  # 只显示文件和目录的路径。
  -d  # 目录以普通文件的形式列出。
  -h  # 以人类可读的方式格式化文件的大小而不是字节数。
  -q  # 打印 ? 而不是不可打印的字符。
  -R  # 递归地列出目录的内容。
  -t  # 根据修改时间(最近的先修改)对文件进行排序。
  -S  # 按大小排序文件。
  -r  # 颠倒排序的顺序。
  -u  # 使用最后访问时间代替修改显示和排序。
  -e  # 显示文件和目录的擦除编码策略。

创建文件

  • -touchz <path> ... # 创建一个长度为0的文件,路径为,时间戳为当前时间<路径>。如果文件存在且长度非零,则返回错误
  • -touch [-a] [-m] [-t TIMESTAMP ] [-c] <path> ... # 更新指定文件的访问和修改次数到当前时间。如果该文件不存在,则创建一个零长度的文件在处,当前时间作为的时间戳。
  -a # 只修改访问时间
  -m # 只修改修改时间
  -t # TIMESTAMP使用指定的时间戳(格式为yyyyMMddHHmmss)代替当前时间
  -c # 不创建任何文件

移动文件(移动的时候可以更改名称

  • -mv <src> ... <dst> #将匹配指定文件模式的文件移动到目标。移动多个文件时,目标必须是一个目录。

查找文件

  • -find <path> ... <expression> ... # 查找与指定表达式和匹配的所有文件将选定的操作应用于它们。如果不指定然后默认为当前工作目录。如果没有表达式被指定,然后默认为-print。
    -name pattern
    -iname pattern
      # 如果文件的basename与使用标准文件系统通配符的模式。
      # 如果使用-iname,则匹配不区分大小写

    -print
    -print0
      # 总是求值为真。使当前路径名为写入标准输出,后跟换行符。
      # 如果-print0如果使用了表达式,则会添加一个ASCII NULL字符比一个换行符。

创建文件夹

  • -mkdir [-p] <path> ... # 在指定位置创建目录。
-p  # 如果目录已经存在,不会失败 

删除文件

  • -rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ... # 删除所有匹配指定文件模式的文件。相当于Unix的rm命令”< src > "
  -f          # 如果该文件不存在,则不显示诊断消息或修改退出状态以反映一个错误。                        
  -[rR]      # 递归删除目录。                                  
  -skipTrash  # 选项绕过回收站(如果启用),并立即删除。 
  -safely     # 选项需要安全确认,如果启用,则需要大于等于的大目录删除前请确认\<hadoop.shell.delete.limit.num.files\>文件。预计延迟时间为递归遍历大目录以计算确认前需要删除的文件。

拷贝文件

  • -cp [-f] [-p | -p[topax]] [-d] <src> ... <dst> # 将匹配文件模式的文件复制到目标。当复制多个文件,目标必须是一个目录。
    传递-p保留状态topax。如果-p没有指定,那么保留时间戳、所有权和权限。
    如果指定了-pa,则保留权限,这也是因为ACL是权限的超集。
    如果目标已经存在,传递-f将覆盖它。
    原始的命名空间扩展属性被保留,如果(1)它们被支持(仅适用于HDFS),(2)所有的源和目标路径名都在/。保留/原始的层次结构。原始命名空间xattr的保留完全由/的存在(或不存在)决定。保留/原始前缀,而不是-p选项。传递-d将跳过临时文件的创建(. copying)。

追加内容

  • -appendToFile <localsrc> ... <dst> # 将所有给定本地文件的内容追加到给定的<ds>t文件。如果<ds>t的文件不存在,将创建该文件。如果<localSrc>是-,则输入是从stdin读取。

查看内容

  • -cat [-ignoreCrc] <src> ... # 获取所有匹配文件模式的文件,并显示其内容在stdout。

上传文件

  • -put [-f] [-p] [-l] [-d] [-t <thread count>] <localsrc> ... <dst> # 将文件从本地文件系统复制到fs。如果文件已经存在会复制失败,除非指定了-f标志。
  -p                 # 保存时间戳、所有权和模式。               
  -f                 # 如果目标已经存在,则覆盖它。            
  -t <thread count>  # 使用的线程数,默认为1。                
  -l                 # 允许DataNode将文件延迟持久化到磁盘。强制复制因子为1。这个标志将导致耐久性下降。小心使用。                                  
  -d                 # 跳过临时文件的创建(<dst>._COPYING_)
  • -copyFromLocal [-f] [-p] [-l] [-d] [-t <thread count>] <localsrc> ... <dst> # 与-put命令相同。
  • -moveFromLocal [-f] [-p] [-l] [-d] <localsrc> ... <dst> # 除了源文件在复制后被删除与-put相同,而且-t选项还没有实现.

下载文件

  • -get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst> # 将匹配文件模式的文件复制到本地名称。<src>保存。复制多个文件时,目标必须是一个目录。传递- f如果目标已经存在,则覆盖目标,而-p保留访问和修改时间、所有权和方式。
  • -copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst> # 和get命令相同

其它命令

hdfs+getconf+[cmd]

从配置中获取配置值

  -namenodes			        # 获取群集中的namenode列表。
  -secondaryNameNodes			# 获取集群中secondaryNameNode的列表。
  -backupNodes			# 获取群集中的备份节点列表。
  -journalNodes			# 获取群集中的日志节点列表。
  -includeFile			# 获取定义可加入群集的datanode的包含文件路径。
  -excludeFile			# 获取定义需要退役的datanode的排除文件路径。
  -nnRpcAddresses			# 获取namenode RPC地址
  -confKey [key]			# 从配置中获取特定的key

hdfs+dfsadmin+[cmd]

运行DFS管理员客户端

[-help [cmd]]          # 帮助
[-safemode <enter | leave | get | wait>]      # 安全模式 <进入|离开|获取|等待>
...

hdfs+fsck++[cmd]

运行文件系统检查工具
可选一
[-list-corruptfileblocks | [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks | -replicaDetails | -upgradedomains]]]]

-list-corruptfileblocks	# 打印出丢失的块和它们所属的文件列表
-move	# 移动损坏的文件到/丢失+发现
-delete	# 删除的文件
-files	# 打印出正在检查的文件
-openforwrite	# 打印出打开要写入的文件
-files -blocks	# 打印块报告
-files -blocks -locations	# 打印出每个区块的位置
-files -blocks -racks	# 打印出数据节点位置的网络拓扑结构
-files -blocks -replicaDetails	# 打印出每个副本的细节
-files -blocks -upgradedomains	# 打印出每个块的升级域

# 例:显示HDFS块信息
hdfs fsck 文件路径 -files -blocks -locations

可选二
[-includeSnapshots] [-showprogress] [-storagepolicies] [-maintenance] [-blockId <blk_Id>]

-includeSnapshots	 # 如果给定的路径指示一个可快照目录,或者该目录下有可快照目录,则包含快照数据
-showprogress	# 弃用,现在默认显示进度
-storagepolicies	# 打印出块的存储策略摘要
-maintenance	# 打印维护状态节点详细信息
-blockId	# 打印出该块属于哪个文件,该块的位置(节点、机架),以及其他诊断信息(复制不足、损坏或未损坏等)

其它

hadoop checknative  # 检测压缩库本地安装情况
hadoop namenode -format  # 格式化namenode,往往是第一次启动集群使用
# 执行自定义jar包
hadoop jar xxx
yarn jar xxx

标签:files,HDFS,入门,...,打印,hadoop,文件,如果,目录
来源: https://www.cnblogs.com/S2Jgogo/p/15899641.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有