• Hadoop3.0大数据处理学习2(HDFS)


    一、简介

    HDFS:Hadoop Distributed File System。Hadoop分布式存储系统
    一种允许文件通过网络在多台主机上分享的文件系统,可以让多机器上的用户分享文件和存储空间。
    两大特性:通透性、容错性

    分布式文件管理系统的实现很多,HDFS只是其中一种,HDSF不适合存储小文件。GFS、TFS。

    二、HDSF的shell

    • 使用格式:bin/hdfs dfs -[commond] [schema]😕/[authority]/[path]
    • HDFS的schema是hdfs,authority是NameNode的节点IP和对应的端口号(默认9000),path是我们要操作的路径信息。

    操作commond

    • ls:查询指定路径信息
    • put:从本地上传文件
    • cat:查看hdfs文件内容
    • get:下载文件到本地
    • mkdir [-p]:创建文件夹(-p递归创建)
    • rm [-r]:删除文件/文件夹
    # 查看
    [root@cent7-1 hadoop-3.2.4]# bin/hdfs dfs -ls hdfs://cent7-1:9000/
    Found 3 items
    drwxr-xr-x   - root supergroup          0 2023-09-07 14:25 hdfs://cent7-1:9000/hbase
    drwx-wx-wx   - root supergroup          0 2023-09-01 16:49 hdfs://cent7-1:9000/tmp
    drwxr-xr-x   - root supergroup          0 2023-09-01 16:47 hdfs://cent7-1:9000/user
    # 上传文件(到根目录)
    [root@cent7-1 hadoop-3.2.4]# bin/hdfs dfs -put README.txt hdfs://cent7-1:9000/
    # 查看的简写
    [root@cent7-1 hadoop-3.2.4]# bin/hdfs dfs -ls /
    Found 4 items
    -rw-r--r--   1 root supergroup       1361 2023-10-16 21:35 /README.txt
    drwxr-xr-x   - root supergroup          0 2023-09-07 14:25 /hbase
    drwx-wx-wx   - root supergroup          0 2023-09-01 16:49 /tmp
    drwxr-xr-x   - root supergroup          0 2023-09-01 16:47 /user
    # 查看文件内容
    [root@cent7-1 hadoop-3.2.4]# bin/hdfs dfs -cat /README.txt
    For the latest information about Hadoop, please visit our website at:
    # 下载文件
    [root@cent7-1 hadoop-3.2.4]# bin/hdfs dfs -get /tmp
    [root@cent7-1 hadoop-3.2.4]# ls
    bin  etc  include  lib  libexec  LICENSE.txt  nohup.out  NOTICE.txt  README.txt  sbin  share  tmp
    # 创建多级文件夹
    [root@cent7-1 hadoop-3.2.4]# hdfs dfs -mkdir /dirtest
    [root@cent7-1 hadoop-3.2.4]# hdfs dfs -mkdir /dirtest/xixi
    ## 或者使用命令[root@cent7-1 hadoop-3.2.4]# hdfs df s -mkdir -p /dirtest/xixi
    [root@cent7-1 hadoop-3.2.4]# hdfs dfs -ls /
    Found 5 items
    -rw-r--r--   1 root supergroup       1361 2023-10-16 21:35 /README.txt
    drwxr-xr-x   - root supergroup          0 2023-10-16 21:51 /dirtest
    drwxr-xr-x   - root supergroup          0 2023-09-07 14:25 /hbase
    drwx-wx-wx   - root supergroup          0 2023-09-01 16:49 /tmp
    drwxr-xr-x   - root supergroup          0 2023-09-01 16:47 /user
    # 删除文件
    [root@cent7-1 hadoop-3.2.4]# hdfs dfs -rm /README.txt
    Deleted /README.txt
    # 删除文件夹
    [root@cent7-1 hadoop-3.2.4]# hdfs dfs -rm -r /dirtest
    Deleted /dirtest
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    三、HDFS体系结构

    • hdfs包含:NameNode、SecondaryNameNode、DataNode(前俩个是在主节点启动,DataNode在从节点启动。而伪分布式启动三个)

    NameNode(管理节点)

    • NameNode是整个文件系统的管理节点,主要维护整个文件系统的文件目录树,文件/目录的元信息,每个文件对应的数据块列表,并且还负责接受用户的操作请求。
    • NameNode文件保存在内存中,并持久化到磁盘的repo/dfs/name/current目录。包含以下文件类型:fsimage(某一时刻的元数据快照)、edits(修改操作日志)、seed_txid(存储edits文件id,在重启时,会按顺序执行,来恢复元数据信息。如果发现文件不存在,则NameNode不会启动)、VERSION(版本信息)。
    • 上面的文件保存路径是由hdfs-default.xml文件中的dfs.namenode.name.dir属性控制

    SecondaryNameNode(合并操作)

    • 主要负责定期的把edits文件中的内容合并到fsimages中
    • 这个合并操作称为checkpoint,在合并的时候会对edits中的内容进行转换,生成新的内容保存到fsimages文件中
    • 距离上一次checkpoint已有一小时,或者对hdfs进行了100W次的操作。
    • 注意:在NameNode的HA架构中是没有SecondaryNameNode进程的,这个文件合并操作是由Standby NameNode负责实现的。

    DataNode(从节点)

    • 提供真实文件数据的存储服务
    • HDFS会按照固定的大小、顺序来对文件进行划分编号,划分好的每个文件块称为Block,Hdfs默认Block大小是128MB。
    • HDFS中,如果一个文件小于一个数据块的大小,那么并不会占用整个数据块的存储空间。

    总结

    NameNode维护了两份关系

    1. 第一个是File和Block List的关系,对应的关系信息存储在fsimages和edits文件中(当NameNode启动的时候会把文件中的内容加载到内存中)
    2. 第二个关系:DataNode与Block的关系(当DataNode启动的时候,会把当前节点上的Block信息和节点信息上报给NameNode)
  • 相关阅读:
    PyTorch 深度学习之用PyTorch实现线性回归Linear Regression with PyTorch(四)
    Swift团队逼走创始人?本人回应表示团队“有毒”
    通过构造函数中设置_前端培训
    辅助驾驶功能开发-功能规范篇(24)-2-影子模式功能触发规范
    OpenFeign使用案例
    比Linus更牛逼的程序员,QEMU、FFmpeg的作者
    Ajax技术【Ajax 实战】(二)-全面详解(学习总结---从入门到深化)
    【数据挖掘】聚类分析的简要介绍
    typescript45-接口之间的兼容性
    CSS笔记——Display属性元素分类(行内、块,行内块)&CSS默认样式及解决方案
  • 原文地址:https://blog.csdn.net/qq_40366738/article/details/134044140