• HDFS的Shell操作操作


    3.4 HDFS的Shell操作操作

    3.4.1 基础语法

    HDFS Shell命令是由一系列类似Linux Shell的命令组成的。命令大致可分为操作命令、管理命令、其他命令三类。

    • 操作命令:操作命令是以"hdfs dfs"开头的命令。通过这些命令可以完成HDFS文件的复制、删除和查找等操作。Shell命令的一般格式如下:
    hdfs dfs [通用选项]
    或
    hadoop fs  [通用选项]
    
    • 1
    • 2
    • 3

    其中hdfs是Hadoop系统在Linux系统中的主命令;dfs是子命令,表示执行文件操作;通用选项由HDFS文件操作命令和操作参数组成。hadoop fs 具体命令 或者 hdfs dfs 具体命令两种写法完全相同。

    • 管理命令:管理命令是以"hdfs dfsadmin"开头的命令。通过这些命令,用户可以管理HDFS。管理命令的一般格式如下:
    hdfs dfsadmin [通用选项]
    
    • 1

    其中hdfs是Hadoop系统在Linux系统中的主命令;dfsadmin是子命令,表示执行文件系统管理的操作;通用选项由HDFS管理命令和参数组成

    • 其他命令:把操纵命令"hdfs dfs"、管理命令"hdfs dfsadmin"之外的命令称为其他命令。

    3.4.2 文件操作命令

    常用的HDFS Shell命令

    命令功能
    -help [cmd]显示命令的帮助信息
    -ls® 显示当前目录下所有文件
    -du(s) 显示目录中所有文件的大小
    -count[-q] 显示目录中文件数量
    -mv 移动多个文件到目标目录
    -cp 复制多个文件到目标目录
    -rm®删除文件(夹)
    -put 本地文件复制到hdfs
    -copyFromLocal与put相同
    -moveFromLocal从本地文件移动到hdfs
    -get [-ignoreCrc] 复制文件到本地,可以忽略crc校验
    -getmerge 将源目录中的所有文件排序合并到一个文件中
    -cat 在终端显示文件内容
    -text 在终端显示文件内容
    -copyToLocal [-ignoreCrc] 复制到本地
    -moveToLocal 移动到本地
    -mkdir 创建文件夹
    -touchz 创建一个空文件

    使用fs命令可以查看以上命令

    [li@hadoop102 bin]$ hadoop fs
    
    • 1

    HDFS命令的官方文档地址:
    https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/FileSystemShell.html

    3.4.3 常用文件操作命令

    1. -touch

    功能:创建文件,更新修改文件的时间
    格式:hadoop fs -touch [-a] [-m] [-t TIMESTAMP] [-c] URI [URI …]
    例:在hdfs上创建文件,更新文件修改的时间

    hadoop fs -touch pathname
    hadoop fs -touch -m -t 20180809:230000 pathname
    hadoop fs -touch -t 20180809:230000 pathname
    hadoop fs -touch -a pathname
    
    • 1
    • 2
    • 3
    • 4
    1. -help

    功能:输出这个命令参数
    格式:hadoop fs -help
    例:查看rm命令的帮助文档

    [@hadoop102 hadoop-3.1.3]$ hadoop fs -help rm
    
    • 1
    1. -mkdir

    功能:接收路径指定的URI作为参数,创建目录。
    格式:hadoop fs -mkdir [-p]
    例:在hdfs上创建目录school

    [li@hadoop102 hadoop-3.1.3]$ hadoop fs -mkdir /school
    
    • 1
    1. -moveFromLocal

    功能:移动本地文件到hdfs指定目录上。
    格式:-moveFromLocal
    例:将本地文件/home/sclang/test.txt移动到hdfs的/input文件夹中

    hdfs dfs -moveFromLocal /home/sclang/test.txt /input
    
    • 1
    1. -copyFromLocal

    功能:复制本地文件到hdfs指定目录上。
    格式:hdfs dfs -copyFromLocal [-f] [-p] [-l] [ -d] [-t ]
    例:将本地文件/home/sclang/test.txt文件复制HDFS的/hadoop文件中。

    hdfs dfs -copyFromLocal /home/sclang /hadoop
    
    • 1
    1. -copyToLocal

    功能:复制hdfs文件到本地主机指定目录上。
    格式:-copyToLocal [-f] [-p] [-ignoreCrc] [-crc]
    例:将hdfs文件/hadoop/test.txt文件复制到本地/home/sclang文件中。

    hdfs dfs -copyToLocal /hadoop/test.txt /home/sclang
    
    • 1
    1. -put

    功能:将单个或多个文件上传到指定的HDFS系统目录中去
    格式:-put [-f] [-p] [-l] [-d]
    例:将/home/sclang/file.txt文件上传到/hadoop文件夹中

    hdfs dfs -put /home/sclang/file.txt /hadoop
    
    • 1
    1. -appendToFile

    使用方法:hadoop fs -appendToFile
    追加一个文件到已经存在的文件末尾

    1. -get

    功能:将HDFS文件复制到本地系统指定目录。
    格式:hdfs dfs -get [-f] [-p] [-ignoreCrc] [-crc]
    例:将/hadoop/test.txt文件复制到本地/home/sclang文件中。

    hdfs dfs -get /hadoop/test.txt /home/sclang
    
    • 1
    1. -ls

    功能:显示指定目录下的所有文件。
    格式:hdfs dfs -ls
    例:显示/input目录下的所有文件

    hdfs dfs -ls /input
    
    • 1

    lsr是ls命令的递归版本,会递归列出子目录中的文件及目录信息

    1. -cat

    功能:在屏幕终端打印指定文件内容。
    格式:hdfs dfs -cat
    例:查看/hadoop下的test.txt文件

    hdfs dfs -cat /hadoop/test.txt
    
    • 1
    1. -chgrp

    功能:更改指定文件的所属组。
    格式:hdfs dfs -chgrp [-R]
    例:将/hadoop文件夹及以内的所有文件的所属组改为sclang

    hdfs dfs -chgrp -R sclang /hadoop
    
    • 1
    1. -chmod

    功能:更改指定文件的权限。改变文件的权限。使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。
    格式:hdfs dfs -chmod [-R]
    例:让所有人对/input/word.txt文件有执行权限

    hdfs dfs -chmod +x /input/word.txt
    
    • 1
    1. -chown

    功能:更改指定文件的所属主与所属组。
    格式:hdfs dfs -chown [-R] :
    例:将/hadoop/test.txt文件的属主改为root,属组改为root

    hdfs dfs -chown root:root /hadoop/test.txt
    
    • 1
    1. -cp

    功能:复制文件到指定目录上。将文件从源路径复制到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。(从HDFS的一个路径拷贝到HDFS的另一个路径)
    格式:hdfs dfs -cp [-f] [-p | -p[topax]] [-d]
    例:将本地文件/home/sclang/test.txt文件复制HDFS的/hadoop文件中。

    hdfs dfs -cp /home/sclang /hadoop
    
    • 1
    1. -mv

    功能:将指定文件移动到指定目录下。在HDFS目录中将文件源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同的文件系统间移动文件。
    格式:-mv
    例:将/input/test.txt文件移动到/tmp文件中

    hdfs dfs -mv /input/test.txt /tmp
    
    • 1
    1. -tail

    功能:默认查看指定文件的后10行
    格式:hdfs dfs -tail
    例:查看/hadoop/test.txt文件的前10行内容

    hdfs dfs -tail /hadoop/test.txt
    
    • 1
    1. -rm

    功能:删除指定的文件。
    格式:hdfs dfs -rm [-r|-R] [-f]
    例:删除/hadoop下的test.txt文件

    hdfs dfs -rm -r -f /hadoop/test.txt
    
    • 1
    1. -du

    功能:显示目录中所有文件的大小,或者当只指定一个文件时,显示此文件的大小。
    格式:hadoop fs -du [-s] [-h] [-v] [-x] URI [URI …]

    hdfs dfs -du /hadoop/test.txt
    
    • 1
    1. -setrep

    功能:设置HDFS中文件的副本数量,-R选项用于递归改变目录下所有文件的副本系数。
    格式:hadoop fs -setrep [-R] [-w]

    $ hadoop fs -setrep 10 /jinguo/shuguo.txt
    
    • 1

    这里设置的副本数只是记录在NameNode的元数据中,是否真的会有这么多副本,还得看DataNode的数量。因为目前只有3台设备,最多也就3个副本,只有节点数的增加到10台时,副本数才能达到10。

  • 相关阅读:
    细粒度图像分类论文研读-2014
    深入多线程锁
    Spring Event事件发布机制
    MinIO学习
    完蛋!百融云被大阳线包围了!
    Mac M1移植YoloV5到ios运行
    服务端网关请求性能波动
    【小黑嵌入式系统第三课】嵌入式系统硬件平台(一)——概述、总线、存储设备(RAM&ROM&FLASH)
    03 _ 复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?
    Pikachu-xxe (xml外部实体注入漏洞)过关笔记
  • 原文地址:https://blog.csdn.net/shield911/article/details/127712950