Hadoop核心组件

Hadoop核心组件之分布式文件系统HDFS

概述
  • 源自于Google的GFS论文,论文发表于2003年10月
  • HDFS是GFS的克隆版
  • HDFS特点:扩展性&容错性&海量数据存储
特性
  • 将文件切分成指定大小的数据块并以多副本的存储在多个机器上面
    eg:假设有一个文件 test.log,它的大小是200M;此时需要将它切分为块(block),假设默认的 blocksize 是128M,那就需要切分为两个块=128M(blk1) + 72M(blk2)。在默认3副本的情况下,多台服务器中存储形式如下:

    	node1:blk1
     	node2:blk2
     	node3:blk1	blk2
     	node4:
     	node5:blk1	blk2
    

这种存储方式的好处就在于,假设 node1 节点挂掉了,但是在 node3 和 node5 中还有该文件块 blk1 的副本,因此不会影响到文件的操作。

  • 数据切分、多副本、容错等操作对用户是透明的
    上面那个例子中的处理对于用户来说是不感知的,就像操作单机一样操作分布式文件系统。
    在这里插入图片描述
副本摆放策略

假设按照默认的3个副本因子

  • 在RackA的Node1中保存一个副本
  • 在RankA的Node2中保存一个副本
  • 在RankB的Node1中保存一个副本

即本机、同一个机架内的不同节点、另一个机架上的节点

checkponit

在运行时,元数据Namenode加载到内存中以树形结构的形式存在,那么,如果某个节点突然挂掉了,那么那段时间的元数据就丢失了吗?显然是不可能的。
HDFS会每隔一段时间,假设是30分钟,将元数据信息序列化到磁盘中fsimage,那如果是在这30分钟内挂了呢?HDFS会将这段时间内的操作都记录到edits日志中,这样就可以通过fsimage和edits日志来进行恢复了。
恢复的工作交给Secondary Namenode来处理

  1. 反序列化旧的fsimage到内存中,形成一个树形结构
  2. 将edis中记录的所有对HDFS的操作都更新到内存中去
  3. 合并输出为一个新的fsimage文件来替换旧的fsimage

在这里插入图片描述

Hadoop核心组件之分布式计算框架MapReduce

概述
  • 源自于Google的MapReduce论文,论文发表于2004年12月
  • MapReduce是Google MapReduce的克隆版
  • MapReduce特点:扩展性&容错性&海量数据离线处理
    在这里插入图片描述

Hadoop核心组件之资源调度系统YARN

概述
  • YARN:Yet Another Resource Negotiator
  • 负责整个集群资源的管理和调度
  • YARN特点:扩展性&容错性&多框架资源统一调度
    在这里插入图片描述

Hadoop优势

  • 高可靠性

    • 数据存储:数据块多副本,即使一个节点挂了,在其他节点也能找到副本;
    • 数据计算:重新调度作业计算,若当前作业失败了,会重新启动一个新的作业进行计算
  • 高扩展性

    • 存储/计算资源不够时,可以横向的线性扩展机器
    • 一个集群中可以包含数以千计的节点
  • 其他

    • 存储在廉价机器上,降低成本
    • 成熟的生态圈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值