• hdfs1.0和2.0复习


    1、Namenode元数据两种映射:
    (1)文件名 -> block数据块的映射
    (2)block数据块 -> datanode节点地址的映射
    细节:(1)是持久化到NN的磁盘的(fsimage<-edits log<-NN内存变化),(2)通过心跳组织起来的(DN->NN)


    2、就目前我们的环境(1个master,2个slaves):虽然默认3副本,其实2个副本
    3、NN倾向存储大数据原因:太小的话,block多,内存放不下,太大的话,MR任务执行慢
    4、如果没有SNN,fsimage多久加载一次?只有重启时加载,如果有了SNN呢?
    SNN存在意义?备份,数据恢复
    editlog什么时候会合并到fsimage中?(重启、定期-后台服务)
    5、为什么1.0只有一个NN?(在zookeeper诞生前)
    6、数据完整性校验的目的:检测数据是否损坏
    用的什么校验方法?(crc32算法产生的校验和)
    存在几种校验逻辑?(①client写校验和,DN检验 ②DatablockScanner后来进程)
    7、hdfs可靠性保证有哪些?
    (1)心跳:DN-NN
    (2)块报告:hdfs fsck /cb_uis.data -files -blocks -locations
    (3)数据完整性:crc32
    (4)空间回收:.Trash
    (5)副本-数据冗余
    (6)SNN
    (7)块照
    8、同步和异步的区别?
    9、计算框架和任务调度管理部署同一台机器的好处?本地化,尽量减少数据移动的开销

    HDFS2.0:
    1、为什么HA?解决单点故障问题,1.0里面有SNN,但不可靠,如何解决?(使用量NN,一个active NN,一个standby NN)
    2、既然已经存在DN向两个NN同时发送数据目的是保证数据一致性,那为什么还需要JN呢?(同步的数据不同,文件名-block,block-DN)
    3、在2.0中,Zookeeper的目的:故障转移
    4、ZKFC在2.0中的作用是对自己负责的NN进行健康检查,前提是ZKFC会在ZK上注册一个临时节点,用于监控,当NN失效,那么临时节点消失,整个流程类似于独占锁申请的流程
    5、JN通常要配置成奇数个(2n+1),如果超过n+1个,数据确定下来
    6、JN的功能:让Standby NN与Active NN保持数据同步
    7、JN通常两种:一种是NFS(需要额外的磁盘空间),另一种QJM(不需要空间)
    8、QJM:最低法定人数管理机制,原理:用2n+1太JN机器存储editlog,每次写数据操作属于大多数(>=n+1),返回成功就会认为该次写成功,保证数据高可用
    QJM:本质也是一个小集群
    QJM的好处?
    (1)不需要额外配置共享存储,降低了复杂度、维护成本
    (2)没有单点问题
    (3)JN不会因为某一个台机器延迟,影响整体的延迟,也不会因为JN的数量增多而影响性能(NN向JN发送的日志是并行的)
    (4)系统配置
    9、NN和JN通常配置不在同一个台机器
    FC和NN是同一台机器
    RM和NN配置一台机器
    NM和DN配置一台机器
    通常工业界,ZK是单独维护的
    10、联邦的好处:减轻单一NN压力,将一部分文件转移到其他NN上管理
    如果集群里某一个目录比较大,那么用单独的NN维护起来
    命名空间精简,横向扩展,真正突破单台NN的限制
    性能的提升
    资源的隔离

    每个NN共享所有DN的数据
    联邦的本质:元数据管理和存储进行解耦,但真实数据的存储还是共享的

    11、快照:数据备份、灾备、快速恢复
    快照的创建时瞬间完成的,高效!!!
    快照本质只记录block列表和大小,不涉及数据的复制

    12、缓存:访问速度快
    集中式缓存:数据缓存在哪个节点?DN->真正缓存的数据,NN->数据path列表
    # 创建缓存组
    hdfs cacheadmin -addPool cache_badou -mode 0777
    # 创建文件
    dd if=/dev/zero of=badou.z bs=1M count=20
    # 文件上传
    hadoop fs -mkdir /badou_cache
    hadoop fs -put badou.z /badou_cache
    # 生成缓存
    hdfs cacheadmin -addDirective -path /badou_cache/badou.z -pool cache_badou -ttl 1d
    # 查询
    hdfs cacheadmin -listPools -stats cache_badou
    13、ACL权限控制——高级权限

    Yarn:
    1、定位:分布式操作系统
    2、RM、AM、NM、Container
    3、相当于对jobtracker的绝对权力进行肢解
    (1)资源管理:RM
    (2)作业调度、监控:AM
    4、可插拔式的Scheduler,调度器,不关心应用监控和状态跟踪,不保证应用失败和硬件故障
    调度的具体内容是什么?(Container——容器)
    5、AM也是一个普通的Container
    6、Container是NM启动的还是AM启动的?NM来启动
    7、Container资源问题:
    hadoop1.0中,资源是slot,mapreduce中,map跑完不会释放slot,只能等全部任务跑完
    hadoop2.0中,资源是Container,map阶段跑完可以释放
    通常:每两个container使用一块磁盘以及一个cpu核的时候可以使集群资源得到一个较好的利用
    每台机器最多有多少个container?
    containers=min(2*cores, 1.8*disks, (机器总内存) / 最小容量 )

    最小容量=container最小的容量大小,可配置

    有两类container:cpu和内存,这两类container会分布在任意节点上,位置通常随机

    Yarn里面core的概念等同于真实的cpu的核么?(不一样,yarn里的core是虚拟的)
    8、容错:
    (1)RM挂了怎么办?
    (2)NM挂了怎么办?
    (3)AM挂了怎么办?

    9、Fair Scheduler

  • 相关阅读:
    页面跳转刷新
    表格表头绘制对角线(不固定表格宽高)
    发送邮件的工具类
    重写equals()和hashCode()
    设计模式--原型模式[转载]
    设计模式--外观模式
    设计模式--代理模式
    js处理json js递归
    MySQL锁详解
    开发一个微信小程序实例教程
  • 原文地址:https://www.cnblogs.com/luozeng/p/8861844.html
Copyright © 2020-2023  润新知