• 大数据知识


    《大数据架构师指南》

    大数据本质

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

    大数据的基本特征:

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

    大数据带来的思维变革:

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

    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方法,强制同步获取。
  • 相关阅读:
    西山科技将于12月6日上会:年收入2亿元,耗材收入成为新增长点
    【python】计算偏度和峰度
    1. 怎么判断容器内元素内容是否溢出了 2. typeof和instanceof的区别
    function+bind实现多态(松耦合)
    创业开店选择哪一种咖啡机好?不同咖啡机有什么区别?
    招投标系统软件源码,招投标全流程在线化管理
    总结网络中的一些基本概念——javaee
    【Linux】【创建文件】Linux系统下在命令行中创建文件的方法
    Batch normalization和Layer normalization
    C语言打印菱形
  • 原文地址:https://blog.csdn.net/whereiwillgo/article/details/126328306