hadoop hdfs集群

发布于:2022-07-28 ⋅ 阅读:(222) ⋅ 点赞:(0)
  • HDFS中的前置知识点

    • 数据 ==data==

      • 通过观察和记录 客观事物的属性等信息

      • 包括文字、图片、声音、视频、可以量化的符号。

    • 元数据 ==metadata==

      • 描述数据的数据 记录数据的数据 关于数据的数据

      • data about data

      • 往往是数据的属性信息,比如名称、大小、位置、作者、时间等等。

#0、分布式文件系统应该具备哪些属性 作用是什么
    
    分布式特性
        为什么大数据存储都是分布式的,而不是单机版本的?
        理论层面上分布式可以横向无限扩展 支撑海量数据存储  机器不够加机器
        
    YARN调度策略
        为什么大数据存储的软件底层都是分块的,分片的,分区的?  核心字眼:分
        期许拆分之后 之间没有依赖 可以并行操作提高效率
        另外也能解决单个文件过大 某台机器存储不了的问题
        
    副本机制
        也叫做备份,默认设置3副本(1+2)     replication
        冗余(多余、重复)存储 提高数据的安全性
        
        扩展--->机房:两地三中心  三地五中心(阿里)
        
    元数据记录
        为什么在分布式存储软件中需要去专门记录的元数据?
        方便管理、查找 快速定位
        
    抽象目录树
        文件系统特有的。为什么文件系统都有树结构??
        符合人性 思维 习惯。
        
        目录树结构是一种带有层次的空间结构,也叫做namespace 命名空间。
    
    
#1、HDFS原理 读写流程图  自己梳理。
    pipeline ack packet 3副本机制
    
    
    #上传文件 写数据流程  
    核心要素:pipeline、ack、3 replica
    
    1、客户端通过RPC协议(hdfs://node1:8020)去请求NN,上传文件
    2、NN根据请求判断客户端是否可以上传
       客户端权限  目标路径是否存在
    3、客户端首先请求上传文件的第一个block(告诉NN副本数是几 默认是3)   
    4、NN根据默认3副本策略返回3台DN位置信息,供客户端建立管道上传数据。
       第一副本:优先本地,否则随机
       第二副本:不同于第一个副本的其他机架
       第三副本:和第二个相同机架的不同机器
       
       要想实现副本策略:运维配置 机架感知
    5、客户端跟三个机器通过管道的方式建立连接
        client--->A---->B---->C
        
        网络IO input output
    6、客户端开始从0开始读取文件,把数据打成包packet(64K)写入到管道中 发送出去
    7、在管道传输反方向上,两两之间进行ack校验。
        ack 应答响应机制 
    8、如果至少有一个副本上传成功,本次上传就是成功的,客户端会将上传结果汇报给NN
    9、本文件的第二个block、第三个blcok.....根据上述的步骤重复。
      从第3步开始 重新请求副本存储位置 重新建立管道 传输数据。
      
      
      
    #下载文件 读数据流程  
    目标:找到文件的所有的块 把它下载过来合并起来就是我们所需要的完整文件的样子。
    核心要素: 分批次下载  副本位置排序  CRC循环冗余校验
    
    1、客户端通过RPC协议(hdfs://node1:8020)去请求NN,下载文件 读一个文件
    2、NN根据请求判断客户端是否可以读取下载
       客户端权限  读的文件是否存在
       
    3、NN返回该文件的block的位置信息
        根据文件大小 视情况分批次返回
        返回的每个块都有3个副本 位置列表是排序好的
            排序规则:离客户端近的靠前  副本所在的机器状态好的靠前
            
            这里的近指的是什么近?  拿个皮尺量一下距离???  肯定不是
            所谓的远近指的是:网络拓扑图中距离的远近  通俗来说就是节点间通信横跨的交换机的数量
            在同一个交换机下面的各个机器 之间的距离都是一样的
    4、客户端根据返回的位置列表 去指定的DN节点上读取block  
    5、当第一块读取完毕之前 连接第二个块  如果有下一批次 继续请求位置信息 读取
    6、当所有的块最终根据编号合并成文件完整的样子 中间会通过CRC进行数据的校验 保证数据安全
       
    
#总结、概况nn dn角色职责
    分布式软件主从配合工作场景。
    大数据存储类软件都是这一个套路。 HBase Kafka ES
    
    
​
#2、HDFS shell基本操作
​
#3、Archive 归档小文件
    面试:大数据如何处理小文件场景,为什么讨厌小文件?
        针对文件系统HDFS来说   解决关键:合并小文件变成大文件  合并多大好呢? block size =128M
        针对计算程序来说 也有问题
    
    合并的方式:
        上传前合并  
            在本地先把一批小文件合并成为大文件  python、java代码
        
        上传过程中合并 
            appendToFile 追加合并
        
        上传之后合并 
            archive 小文件归档
    
#4、HDFS元数据管理机制 SNN功能职责
​
    NN管理的元数据分为:
        1、跟文件系统相关的
            目录树结构
            文件的属性
            文件的数据库位置信息
            
        2、跟hdfs集群状态相关的
            DN的心跳信息
            数据块汇报信息
            
    元数据存储在哪里?
        内存:最新最全
        磁盘文件:   
                fsimage  镜像文件  类似于快照 检测点 打游戏的存档
                editslog 编辑日志  记录两次fsimage之间的事务性操作
                
    SNN是NN的备份吗?!!
        名字看很像。但是实际中和备份没有半毛钱关系。
        
        是帮助NN合并元数据文件。
            保证fsimage文件不旧
            保证editslog日志不大  
            保证NN正常服务、性能不受影响
​
#5、HDFS安全模式是什么 
    特点:hdfs处于一种受保护状态  只读不能写
    
    如何进入安全模式?
        自动进入
            时间:hdfs集群namenode启动之后 就立即进入安全模式
            为什么:等待各个dn注册 汇报数据块信息 
            离开条件
                1、已经汇报的数据块比例达到0.999
                2、满足条件持续30s
                
        手动进入
            便于管理员对系统进行升级维护  避免集群启动关闭的麻烦
            
    带给我的启示:
        心急吃不了热豆腐~~
        
        hdfs包括其他软件,启动了不代表它能正常使用。

网站公告

今日签到

点亮在社区的每一天
去签到