大数据知识

《大数据架构师指南》

大数据本质

如何从海量的,多样化的,低价值密度的数据中,快速挖掘出其蕴含的有用价值,是大数据技术的使用。

大数据的基本特征:

  • 海量化:数据量巨大
  • 多样化:数据类型多样
  • 快速化:要求快速处理
  • 价值化:整体价值巨大,但其中干扰信息多,价值密度低

大数据带来的思维变革:

  • 全样本:当前技术可以支撑海量的全量数据处理,很多场景也需要全量处理
  • 概率化:运行混杂劣质数据,不追求精确性,用概率来表示事物发展的大方向
  • 相关性:更关心相关关系,弱化因果关系

Hadoop框架

Hadoop 1.0

  • HDFS(redundant,reliable storage)
  • MapReduce(cluster resource management & data processing)

Hadoop 2.0

  • HDFS(redundant,reliable storage)
  • YARN(cluster resource management)
  • MapReduce(data processing)
  • Others(data processing)

HDFS

分布式文件系统

体系架构:
  • Client:发送请求接收响应
  • NameNode:元数据管理
  • DataNode:真正的数据存储
NameNode:

负责管理文件系统的命名空间以及客户端对文件的访问。
NameNode将所有文件和文件夹的元数据保存在一个文件系统数中,包含一个文件包含哪些数据块,及这些数据块分布在哪些数据节点上。
元数据信息并不存储在硬盘上,而是在启动的时候又DataNode上报到NameNode的。
HDFS采用大一NameNode结构,大大简化了系统架构,使NameNode成为HDFS元数据的仲裁者和管理者。
用户数据不会流过NameNode,其只管理元数据。

DataNode

文件系统中真正存储数据的地方,负责处理客户端的读写请求。
DataName在NameNode统一调度下进行数据块(Block)的创建、删除和复制,并周期性的向NameNode汇报在本DataNode上存储的数据块信息。
客户端可以向DataNode请求写入或读取数据块。

数据块复制

HDFS的设计场景是“一次写入,多次读取”。实际使用时,客户端将文件一次性写入HDFS中,在写入过程中进行数据块的创建、写入。在写入完成后文件和数据块都将不再变化,HDFS再采用数据块复制,构造多副本的方式,实现数据可靠性。
3副本方式中,副本2放置到与原DataNode相同机架的另一节点,副本3放置到不同机架的其他节点上。
客户端读取时,HDFS将其引导到距其最近的节点上。

YARN

统一资源管理

体系架构
  • Container:资源容器
  • AM(Application Master):追踪管理用户提交的应用程序
  • NM(Node Manager):管理本节点上的资源和容器
  • RM(Resource Manager):资源调度,任务接收实施
Container

封装了节点的部分计算和IO资源,包括CPU、内存、磁盘、网络等。
可看作一个占用一定系统资源的进程,可以接收承载AM或Task的代码逻辑。

AM

用户程序的代码逻辑,会被封装入AM中,AM自身会占用一个Container,负责整个应用任务的启动调度和追踪,还可以向RM申请更多Container,执行子任务(Tasks)。

NM

管理每个节点上的资源和任务。定时向RM汇报本节点的资源使用情况和各个Container运行状态。同时接收来自AM的对其Container的启停请求。

RM

负责整个集群资源和任务的统一管理和调度。

MepReduce

分布式计算框架,一个Job被划分成Map和Reduce两个计算阶段。

Map阶段
  • Read阶段:解析读入Key1/Value1
  • Map阶段:Map函数处理,计算出新的Key2/Value2
  • Collect阶段:将Key2/Value2写入环形内存缓冲区
  • Spill阶段:溢写,缓冲区写满后,写入本地磁盘的临时文件
  • Combine阶段:处理完所有数据后,将临时文件合并为一个最终的数据文件
Reduce阶段
  • Shuffle阶段:Reduce Task从各个Map Task上远程拷贝数据,保存在本地内存或磁盘文件中
  • Merge阶段:对内存和磁盘上的文件和数据进行合并
  • Sort阶段:排序,将key相同的数据聚在一起
  • Reduce阶段:将数据交给Reduce函数进行处理,得到Key3/Value3
  • Write阶段:将计算结果写入HDFS

ZooKeeper

集群协调系统,核心是文件系统加通知机制。

  • 客户端可以连接任一Server
  • 只有Leader可以处理写请求,Follower会将写请求交给Leader处理
  • Leader只有一个,Leader故障时,会重新选主
  • 半数Server可用,则ZooKeeper集群整体对外服务就可用
  • 半数server确认某个写事务,则事务提交,向客户端返回写成功
  • zk默认只保证最终一致性,如客户端需要强一致性的最新数据,可以调用sync方法,强制同步获取。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值