HDFS


Hadoop 1.0:

  • 3个组件:

    • Namenode
    • SecondNamenode
    • Datanode

namenode(主节点,master,只有一个,单点故障的风险)中间存储信息(元数据)
2种映射关系

  1. path -> blockid list 列表
  2. blockid 数据块 -> datanode 节点地址
    元数据存在内存中
    元数据进行持久化 — 磁盘fsimage — 目的:避免数据丢失
    fsimage : 元数据镜像文件
    只有机器重启的时候加载fsimage

    元数据持久化的过程 — SNN — secondnamenode
    内存 -> edit log(磁盘)-> fsimage

    SNN 存在意义 : 备份 / 数据恢复

    namenode和 edit log关系:
    namenode需要把每一次改动都存在 edit log ,整个过程谁来推动?(Datanode和namenode之间心跳机制)

    namenode除了单点问题之外,还有不适合存储太多小文件的问题,因为内存有限

datanode (slave,从节点,多个机器)

  1. block 数据块 -> 真实输据
    多副本机制 — 默认3副本 (作用:数据冗余,高可用)
    本地化原则 (就近原则):mapreduce:主(jobtracker - namenode),从(tasktracker - datanode)

可靠性保证 :

  1. 数据校验
    目的 : 保证数据完整性 (通过crc32校验算法)
    整个数据传输过程,输据需要校验几次?

    1. client给datanode写数据:要针对写的数据,每个检查单元(512字节)

      • 每一个单元创建一个单独的校验码(crc32) , 数据和校验码统一发送给Datanode
    2. Datanode 接受输据的时候 : 用同样的加密算法,生成校验码,并校验
      • 在后台还会运行一个扫描进程:DataBlockScanner(定期校验)
      • 一旦检测出现问题,通过心跳,通知NN,让NN发起DN修复 (拷贝没有问题的备份)

2.可靠性保证 :

  • 心跳
  • 多副本机制
  • crc32
  • SNN (secondnamenode)
  • 回收站 ( .Trash 目录)

Hadoop 2.0:

  1. HA 高可用 : 解决了单点故障问题
    1.0里有一个SNN,但是不可靠
    如何便可靠:需要两个NN,一个active,一个standby(备用)
    为了保证两个NN的数据一致性,Datanode要对两个NN同时发送心跳

  2. 虽然Datanode同时发送心跳,但是为什么还需要JN?
    2种映射关系
    path -> blockid list 列表 :JN
    blockid 数据块 -> datanode 节点地址 : Datanode心跳
    分工不同:::

  3. HDFS2.0 需要引入zookeeper , (zookeeper目的:协调分布式集群中各个节点工作有序进行,完成故障转移)

  4. 在2.0,引入zkfc(ZookeeperFailoverController)进程,和NN部署到同一个机器上,目的:负责自己管辖之内的NN进行健康检查
    zkfc 进程会在zookeeper上注册一个临时节点
    目的:监控NN,一旦NN挂掉,相对应的临时节点消失,接下来开始选主(申请锁)流程

  5. JN目的:让activeNN和standbyNN保持输据同步(文件 -> block)
    同步问题:需要以来JN(JournalNodes)守护进程,完成元数据的一致性

  6. JN 角色有两种选择:
    1) NFS — 网络系统 (network file system)
    需要额外的磁盘空间
    2)QJM — 最低法人管理机制 (投票)
    不需要额外的磁盘空间
    需要用2n+1台机器存储edit log (奇数是为了投票)
    QJM本质是小集群
    好处
    * 不需要空间
    * 无但点问题
    * 不会因为个别机器延迟,影响整体性能
    * 只需要通过简单的系统配置可以实现

  7. NN 和 JN 通常不再一个机器上
    FC 和 NN 在同一个机器上
    RM(Yarn主) 和 NN(HDFS主) 通常在同一台机器上
    zookeeper 需要单独维护一套独立集群

HDFS Federation(联邦) : 水平扩展

集群中提供多个Name Node,每个NameNode负责管理一部分DataNode
每一个NN只管理自己管辖之内的DN
目的:减轻单一NN压力,将一部分文件转移到其他NN上管理

如果集群中一个目录比较大,那么可以用单独的NN维护起来
横向亏站,突破了NN的限制

不同的NN,会可以访问所有的DN吗? 会的 
联邦的本质:将元数据管理NN和存储DN进行解耦

可以把联邦和高可用同时体现出来

快照:真实数据(不是元数据) ::: 数据备份/灾备/快速恢复

本质:仅仅记录block列表和大小而已,并不涉及数据本身的复制
某个目录的某一时刻的镜像
创建和恢复,都非常快 — 瞬间完成,高效

HDFS快照是一个只读的基于时间点文件系统拷贝
HDFS快照是对目录进行设定,是某个目录的某一个时刻的镜像

  • 快照可以是整个文件系统的也可以是一部分
  • 常用来作为数据备份,防止用户错误操作和容灾恢复
  • Snapshot并不会影响HDFS的正常操作:修改会按照时间的反序记录,这样可以直接读取到最新的数据
  • 快照数据是当前数据减去修改部分计算出来的
  • 快照会存储在snapeshottable的目录下
快照的各种命令
hdfs dfsadmin -allowSnapshot /user/spark
hdfs dfs -createSnapshot /user/spark s0
hdfs dfs -renameSnapshot /user/spark s0 s_init
hdfs dfs -deleteSnapshot  /user/spark s_init
hdfs dfsadmin -disallowSnapshot /user/spark

缓存(集中式缓存 — 不局限具体的机器的cpu和操作系统层面上的优化)

对于重复访问的文件很有用
优点:速度快

  • 允许用户指定要缓存的HDFS路径
  • 明确的锁定可以阻止频繁使用的数据被从内存中清除
  • 集中化缓存管理对于重复访问的文件很有用
  • 可以换成目录或文件,但目录是非递归

权限控制 ACL

类似于linux系统acl

例:rwx - rwx - rwx
自己 - 组 - 其他

设置权限: setacl命令
需要开启功能:

    dfs.permissions.enableddfs.namenode.acls.enabledhadoop fs -getfacl /input/aclhdfs dfs -setfacl -m user:mapred:r-- /input/aclhdfs dfs -setfacl -x user:mapred /input/acl

转载于:https://www.cnblogs.com/pipemm/articles/11331639.html

大数据 — Hadoop相关推荐

  1. 2021年大数据Hadoop(三十):Hadoop3.x的介绍

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Hadoop3.x的介绍 介绍 Hadoop 3.0新特性 ...

  2. 2021年大数据Hadoop(二十九):​​​​​​​关于YARN常用参数设置

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 关于yarn常用参数设置 设置container分配最小内 ...

  3. 2021年大数据Hadoop(二十七):YARN运行流程

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Yarn运行流程 本系列历史文章 2021年大数据Hado ...

  4. 2021年大数据Hadoop(二十六):YARN三大组件介绍

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Yarn三大组件介绍 ResourceManager No ...

  5. 2021年大数据Hadoop(二十五):YARN通俗介绍和基本架构

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 YARN通俗介绍和基本架构 Yarn通俗介绍 Yarn基本 ...

  6. 2021年大数据Hadoop(二十二):MapReduce的自定义分组

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 MapReduce的自定义分组 需求 分析 实现 第一步: ...

  7. 2021年大数据Hadoop(十五):Hadoop的联邦机制 Federation

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Hadoop的联邦机制 Federation 背景概述 F ...

  8. 2021年大数据Hadoop(十四):HDFS的高可用机制

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 HDFS的高可用机制 HDFS高可用介绍 组件介绍 Nam ...

  9. 2021年大数据Hadoop(一):​​​​​​​Hadoop介绍

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 Hadoop介绍 Hadoo ...

  10. 王家林 云计算分布式大数据Hadoop实战高手之路第七讲Hadoop图文训练课程:通过HDFS的心跳来测试replication具体的工作机制和流程...

    这一讲主要深入使用HDFS命令行工具操作Hadoop分布式集群,主要是通过实验的配置hdfs-site.xml文件的心跳来测试replication具体的工作和流程. 通过HDFS的心跳来测试repl ...

最新文章

  1. 线性回归的改进-岭回归
  2. python 用途-python中的*和**的用途
  3. 【数据平台】Eclipse+Scala远程开发调试关于hostname的问题
  4. java 线程状态_Java线程为何没有Running状态?我猜你不知道。
  5. php汽车配件管理系统,汽配仓库管理系统_汽配库存管理系统
  6. 一个服务器上放多个网站,一个云服务器放多个网站吗
  7. 查看pem证书的ASN数据结构的方法
  8. itlwm驱动_GitHub - sjoye/itlwm: IntelWifi
  9. htaccess是什么文件
  10. 给input设置css样式,input能改变css样式吗
  11. 从零开始设计一款APP之Android设计规范篇
  12. C# 使用HTMLhelp生成chm文件添加搜索并解决搜索找不到主题的问题
  13. java 图片与base64相互转化
  14. 狂神说笔记——Java SE基础01
  15. WEB攻防-通用漏洞SQL读写注入ACCESS偏移注入MYSQLMSSQLPostgreSQL
  16. HTML(二)列表、表格、表单元素
  17. hql 字符串where语句_常用的HQL语句
  18. 设计 QQ、微信、微博、Github 等第三方账号登陆
  19. 如何查看大型工程源代码(非常不错)
  20. 先收藏!只需三步,教你做好 618 大促复盘!

热门文章

  1. 利用指针编程实现:删除一个字符串中的所有空格 c语言,C语言必考100题解析汇报...
  2. 【EOJ Monthly 2019.01 - E】唐纳德先生与假骰子(假概率问题)
  3. 【HDU - 5094】 Maze (状态压缩+bfs)
  4. SQL基础用法总结(以前复习的时候放在自己的新浪博客上)
  5. php获取手机目录,php如何获取手机型号
  6. 摩托罗拉为什么要限制自家linux手机,摩托罗拉为何在安卓手机大放异彩的时候,突然开始衰败了呢?...
  7. leetcode585. 2016年的投资(SQL)
  8. Abstract Self-Balancing Binary Search Tree
  9. 计算一个人出生了多少天(炸窝)
  10. python模块(5)-Matplotlib 简易使用教程