• HDFS的Shell操作


    1、进程启停管理

    1.1、一键启停脚本

    Hadoop HDFS组件内置了HDFS集群的一键启停脚本。

    1.1.1、一键启动HDFS集群

    $HADOOP_HOME/sbin/start-dfs.sh,一键启动HDFS集群

    start-dfs.sh
    
    • 1

    执行原理:

    • 在执行此脚本的机器上,启动SecondaryNameNode。
    • 读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器,启动NameNode。
    • 读取workers内容,确认DataNode所在机器,启动全部DataNode。
    1.1.2、一键关闭HDFS集群

    $HADOOP_HOME/sbin/stop-dfs.sh,一键关闭HDFS集群

    stop-dfs.sh
    
    • 1

    执行原理:

    • 在执行此脚本的机器上,关闭SecondaryNameNode。
    • 读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器,关闭NameNode。
    • 读取workers内容,确认DataNode所在机器,关闭全部NameNode。

    1.2、单进程启停

    除了一键启停外,也可以单独控制进程的启停。

    1. $HADOOP_HOME/sbin/hadoop-daemon.sh,此脚本可以单独控制所在机器的进程的启停
      用法:hadoop-daemon.sh (start|status|stop) (namenode|secondarynamenode|datanode)
    hadoop-daemon.sh start namenode
    
    • 1
    1. $HADOOP_HOME/bin/hdfs,此程序也可以用以单独控制所在机器的进程的启停
      用法:hdfs --daemon (start|status|stop) (namenode|secondarynamenode|datanode)
    hdfs --daemon start namenode
    
    • 1

    2、文件系统操作命令

    2.1、HDFS文件系统基本信息

    HDFS作为分布式存储的文件系统,有其对数据的路径表达方式。

    HDFS同Linux系统一样,均是以/作为根目录的组织形式。

    • Linux:file:///usr/local/hello.txt
    • HDFS:hdfs://node1:8020/usr/local/hello.txt

    协议头file:/// 或 hdfs://node1:8020/可以省略
    需要提供Linux路径的参数,会自动识别为file://
    需要提供HDFS路径的参数,会自动识别为hdfs://

    除非你明确需要写或不写会有BUG,否则一般不用写协议头
    .

    2.2、命令介绍

    关于HDFS文件系统的操作命令,Hadoop提供了2套命令体系。

    • hadoop命令(老版本用法),用法:hadoop fs [generic options]
    • hdfs命令(新版本用法),用法:hdfs dfs [generic options]

    两者在文件系统操作上,用法完全一致,用哪个都可以。

    某些特殊操作需要选择hadoop命令或hdfs命令。

    2.3、创建文件夹

    2.3.1、旧命令

    hadoop fs -mkdir [-p] < path> …

    • path 为待创建的目录
    • -p 选项的行为与Linux mkdir -p一致,它会沿着路径创建父目录。
    hadoop fs -mkdir -p /it/bigdata
    
    • 1

    在这里插入图片描述

    2.3.2、新命令

    hdfs dfs -mkdir [-p] < path> …

    • path 为待创建的目录
    • -p 选项的行为与Linux mkdir -p一致,它会沿着路径创建父目录。
    hdfs dfs -mkdir -p /it/hadoop
    
    • 1

    在这里插入图片描述

    2.4、查看指定目录下内容

    2.4.1、旧命令

    hadoop fs -ls [-h] [-R] [< path> …]

    • path 指定目录路径
    • -h 人性化显示文件size
    • -R 递归查看指定目录及其子目录

    查看/目录下的内容

     hadoop fs -ls /
    
    • 1

    在这里插入图片描述

    2.4.2、新命令

    hdfs dfs -ls [-h] [-R] [< path> …]

    • path 指定目录路径
    • -h 人性化显示文件size
    • -R 递归查看指定目录及其子目录

    递归查看/下的内容

    hdfs dfs -ls -R /
    
    • 1

    在这里插入图片描述

    2.5、上传文件到HDFS指定目录下

    2.5.1、旧命令

    hadoop fs -put [-f] [-p] < localsrc> … < dst>

    • -f 覆盖目标文件(已存在下)
    • -p 保留访问和修改时间,所有权和权限。
    • localsrc 本地文件系统(客户端所在机器)
    • dst 目标文件系统(HDFS)

    新建一个文件,复制到/it目录下

    hadoop fs -put text.txt /it
    
    • 1

    在这里插入图片描述

    2.5.2、新命令

    hdfs dfs -put [-f] [-p] < localsrc> … < dst>

    • -f 覆盖目标文件(已存在下)
    • -p 保留访问和修改时间,所有权和权限。
    • localsrc 本地文件系统(客户端所在机器)
    • dst 目标文件系统(HDFS)

    如果存在,直接覆盖

    hdfs dfs -put -f text.txt /it
    
    • 1

    在这里插入图片描述

    2.6、查看HDFS文件内容

    2.6.1、旧命令

    hadoop fs -cat < src> …
    读取指定文件全部内容,显示在标准输出控制台。

    hadoop fs -cat /it/text.txt
    
    • 1

    在这里插入图片描述

    2.6.2、新命令

    hdfs dfs -cat < src> …
    读取指定文件全部内容,显示在标准输出控制台。

    hdfs dfs -cat /it/text.txt
    
    • 1

    在这里插入图片描述

    2.6.3、大文件配合管道命令

    读取大文件可以使用管道符配合more

    • hadoop fs -cat < src> | more
    • hdfs dfs -cat < src> | more

    按空格下一页

    hdfs dfs -cat /it/text2.txt | more
    
    • 1

    在这里插入图片描述

    2.7、下载HDFS文件

    hadoop fs -get [-f] [-p] < src> … < localdst>
    hdfs dfs -get [-f] [-p] < src> … < localdst>

    下载文件到本地文件系统指定目录,localdst必须是目录

    • -f 覆盖目标文件(已存在下)
    • -p 保留访问和修改时间,所有权和权限。

    下载text.txt文件到当前的本地目录

    hdfs dfs -get /it/text.txt ./
    
    • 1

    在这里插入图片描述

    2.8、拷贝HDFS文件

    hadoop fs -cp [-f] < src> … < dst>
    hdfs dfs -cp [-f] < src> … < dst>

    • -f 覆盖目标文件(已存在下)

    • 拷贝HDFS文件到HDFS目录

    hdfs dfs -cp /it/text.txt /it/test
    
    • 1

    在这里插入图片描述

    • 拷贝并重命名
    hdfs dfs -cp /it/text.txt /it/test/text11.txt
    
    • 1

    在这里插入图片描述

    2.9、追加数据到HDFS文件中

    hadoop fs -appendToFile < localsrc> … < dst>
    hdfs dfs -appendToFile < localsrc> … < dst>

    将所有给定本地文件的内容追加到给定dst文件。

    • dst如果文件不存在,将创建该文件。
    • 如果< localSrc>为-,则输入为从标准输入中读取。
    hdfs dfs -appendToFile 2.txt 3.txt /it/1.txt
    
    • 1

    在这里插入图片描述在这里插入图片描述

    2.10、HDFS数据移动操作

    hadoop fs -mv < src> … < dst>
    hdfs dfs -mv < src> … < dst>

    移动文件到指定文件夹下。
    可以使用该命令移动数据,重命名文件的名称。

     hdfs dfs -mv /it/1.txt /it/test
    
    • 1

    在这里插入图片描述

    2.11、HDFS数据删除操作

    hadoop fs -rm -r [-skipTrash] URI [URI …]
    hdfs dfs -rm -r [-skipTrash] URI [URI …]

    删除指定路径的文件或文件夹

    • -skipTrash 跳过回收站,直接删除。
    hdfs dfs -rm -r /it/text2.txt
    
    • 1

    在这里插入图片描述

    开启回收站

    回收站功能默认关闭,如果要开启需要在core-site.xml内配置:

    <property>
    	<name>fs.trash.intervalname>
    	<value>1440value>
    property>
     
    <property>
    	<name>fs.trash.checkpoint.intervalname>
    	<value>120value>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    无需重启集群,在哪个机器配置的,在哪个机器执行命令就生效。

    回收站默认位置在:/user/用户名(hadoop)/.Trash

    2.12、其他命令:

    官方指导文档:https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-common/FileSystemShell.html

    3、hdfs客户端

    Big Data Tools插件

    在Jetbrains的产品中,均可以安装插件,其中:Big Data Tools插件可以帮助我们方便的操作HDFS,比如

    • IntelliJ IDEA(Java IDE)
    • PyCharm(Python IDE)
    • DataGrip(SQL IDE)

    均可以支持Bigdata Tool插件。

    3.1、idea安装Big Data Tools插件

    在这里插入图片描述

    3.2、配置Windows

    需要对Windows系统做一些基础设置,配合插件使用
    解压Hadoop安装包到Windows系统,如解压到:D:\hadoop-3.3.4
    在这里插入图片描述

    设置$HADOOP_HOME环境变量指向:D:\hadoop-3.3.4
    在这里插入图片描述

    下载

    • hadoop.dll(https://github.com/steveloughran/winutils/blob/master/hadoop-3.0.0/bin/hadoop.dll)
    • winutils.exe(https://github.com/steveloughran/winutils/blob/master/hadoop-3.0.0/bin/winutils.exe)

    将hadoop.dll和winutils.exe放入$HADOOP_HOME/bin中
    在这里插入图片描述

    3.3、打开插件链接

    在这里插入图片描述在这里插入图片描述

    3.4、可以进行文件的一些操作

    在这里插入图片描述
    在这里插入图片描述

    结束!!!!!!
    hy:34


    						我们只需要活好今天,因为永恒由每个今天构成,每个今天都可以触摸永恒。 
    
    • 1
  • 相关阅读:
    ICCV 2023|小红书 4 篇入选论文亮点解读,「开集视频目标分割」获得 Oral
    c++程序
    基于docker-k8s的web集群
    解决Qt msvc编译器 中文显示乱码问题
    案例分享 | 高性能材料企业官网3D可视化升级
    【Python基础篇016】异常处理的超详细讲解
    深度学习的进展
    像素和分辨率的关系
    24.java- File类的常用方法:遍历目录里的文件
    Redis缓存的几个名词,缓存命中、缓存穿透、缓存雪崩、缓存击穿
  • 原文地址:https://blog.csdn.net/weixin_49107940/article/details/132832284