【Hadoop】HDFS shell操作与管理工具

  • HDFS shell操作
  • HDFS管理工具
    • dfsadmin
    • fsck
    • 均衡器

HDFS shell操作

HDFS 是存取数据的分布式文件系统,对 HDFS 的操作就是文件系统的基本操作,如文件的创建、修改、删除、修改权限,目录的创建、删除、重命名等。对 HDFS 的操作命令类似于 Linux 的 shell对文件的操作,如 ls、mkdir、rm 等。

所有的 FS shell 命令使用 URI 路径作为参数,URI 格式是 scheme://authority/path。对 HDFS 文件系统,scheme 是 hdfs, 对本地文件系统,scheme 是 file. 其中 scheme 和authority 参数都是可选的,如果 scheme 未加指定,就会使用配置中指定的默认 scheme 值。

一个HDFS文件或目录比如 /parent/child 可以表示成 hdfs://namenode:namenodeport/parent/child ,或者更简单的 /parent/child (假设你配置文件中的默认值是 namenode:namenodeport )。大多数FS Shell命令的行为和对应的Linux Shell命令类似,不同之处会在下面介绍各命令使用详情时指出。出错信息会输出到 stderr ,其他信息输出到 stdout

对于路径的说明包括 hdfs 路径和 Linux 路径,如果没有明确指出,默认是 hdfs路径

比如:

  • hadoop fs命令可显示当前 Hadoop 版本所支持的命令:【Hadoop】HDFS shell操作与管理工具_第1张图片

  • hadoop fs -ls /。由于没有说明路径是Linux路径还是hdfs路径,默认就是hdfs路径:【Hadoop】HDFS shell操作与管理工具_第2张图片

  • hadoop fs -put <多个 linux 上的文件> 从Linux本地文件系统上传(复制)文件到hdfs文件系统

  • hadoop fs -touchz 创建空白文件

  • hadoop fs -get < linux 路径> 可以复制 hdfs 文件到本地文件系统


HDFS管理工具

dfsadmin

hdfs dfsadmin命令可以获取 HDFS 的状态信息,也可以在 HDFS 上执行的一系列管理操作。这个命令还有一系列参数可以选择。比如:

  • -help:帮助信息

  • -report:查看文件系统的基本信息和统计信息

  • -refreshNodes:重新读取 hosts 和 exclude 文件,使新的节点或需要退出集群的节点能够被 NameNode 重新识别。这个命令在新增节点或注销节点时用到

fsck

hadoop fsck file 命令用来检验 HDFS 中的文件是否正常可用。该工具可以检测文件块是否从 DataNode 中丢失,是否低于或高于文件副本要求。

比如:

【Hadoop】HDFS shell操作与管理工具_第3张图片

fsck命令有一些选项可以选择,比如:

  • -files:显示文件的名称、大小、块数量及是否可用
  • -blocks:显示每个块在文件中的信息,一个块用一行显示
  • -racks:展示了每个块所处的机架位置及 DataNode 的位置

均衡器

随着时间推移,各个 datanode 上的块分布会越来越不均衡。不均衡的集群会降低数据应用的本地性,导致部分 datanode 相对更加繁忙。应避免出现这种情况。

均衡器(balancer)程序是一个 Hadoop 守护进程,它将块从忙碌的 datanode 移到相对空闲的 datanode,从而重新分配块。同时坚持块副本放置策略,将副本分散到不同机架,以降低数据损坏率。它不断移动块,直到集群达到均衡的状态,即每个 datanode 的使用率和集群的使用率非常接近,差距不超过给定的阈值。可以通过以下命令启动均衡器:% start-balancer.sh

你可能感兴趣的:(hadoop,hdfs,npm)