通过HDFS Shell连接并使用文件引擎

使用HDFS Shell

通过HDFS Shell工具,你可以交互式管理文件引擎的文件,包括文件查询、文件删除、文件权限管理和修改文件名称等, 本章介绍最基本的HDFS Shell的使用命令, 完整的指令可以通过help命令查看,更多内容请参考 Apache HDFS Shell 介绍。使用前请先查看 使用开源HDFS客户端访问进行基本环境的配置。

常用命令

  1. 从本地上传数据到文件引擎常用的指令。

    1.put : 从本地文件系统中复制单个或多个源路径到目标文件引擎。也支持从标准输入中读取输入写入目标文件引擎。
    2.copyFromLocal : 除了限定源路径是一个本地文件外,和put命令相似。
    3.moveFromLocal : 把文件从本地剪切到文件引擎。
    4.appendToFile : 从本地文件系统追加一个或多个src到目标文件引擎。
  2. 操作文件引擎数据的常用指令

    1. cp : 将文件从源路径复制到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。
    2. mv : 将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同的文件系统间移动文件。
    3. chown : 改变文件的拥有者。使用-R将使改变在目录结构下递归进行。命令的使用者必须是超级用户 。
    4. chgrp : 改变文件所属的组。使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。
    5. chmod : 变文件的权限。使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。
    6. mkdir : 接受路径指定的uri作为参数,创建这些目录。其行为类似于Unix的mkdir -p,它会创建路径中的各级父目录。
    7. du : 显示目录中所有文件的大小,或者当只指定一个文件时,显示此文件的大小。
    8. df : 查看文件的使用情况 。
    9. cat : 将路径指定文件的内容输出到stdout。
    10. rm : 删除指定的文件。只删除非空目录和文件。
    11. ls : 如果是文件,则按照如下格式返回文件信息:
              文件名 <副本数> 文件大小 修改日期 修改时间 权限 用户ID 组ID
              如果是目录,则返回它直接子文件的一个列表,就像在Unix中一样。目录返回列表的信息如下:
              目录名 <dir> 修改日期 修改时间 权限 用户ID 组ID 。
  3. 从文件引擎下载数据到本地的常用指令。

    1. get : 复制文件到本地文件系统。可用-ignorecrc选项复制CRC校验失败的文件。使用-crc选项复制文件以及CRC信息。
    2. getmerge : 接受一个源目录和一个目标文件作为输入,并且将源目录中所有的文件连接成本地目标文件。
    3. copyToLocal : 除了限定目标路径是一个本地文件外,和get命令类似。

示例

  1. 查询目录下面的文件,${实例Id}为文件引擎的实例Id,请根据您的实际情况进行修改。

    ${HADOOP_HOME}/bin/hadoop fs -ls hdfs://${实例ID}/
    查询结果
  2. 上传文件,${实例Id}为文件引擎的实例Id,请根据您的实际情况进行修改。

    ${HADOOP_HOME}/bin/hadoop fs -put test.txt hdfs://${实例ID}/
    上传文件截图
  3. 下载文件到本地,${实例Id}为文件引擎的实例Id,请根据您的实际情况进行修改。

    ${HADOOP_HOME}/bin/hadoop fs -get hdfs://${实例ID}/xxxxx

    xxxxx 为你要下载的文件名称。

    下载文件截图
  4. 删除文件,${实例Id}为文件引擎的实例Id,请根据您的实际情况进行修改。

    ${HADOOP_HOME}/bin/hadoop fs -rm hdfs://${实例ID}/xxxxx

    删除文件截图xxxxx 为你要删除的文件名称,删除文件,会将文件移到Trash目录下面,不会被真正清除;如需彻底清除,则执行hadoop fs -expunge命令,即清空回收站。