本文是对《大数据与云计算导论》课程知识点的应试总结。基本涵盖了《大数据技术原理与应用》的重点内容。
思维导图由@福尔摩东整理
信息化浪潮 | 发生时间 | 标志 | 解决的问题 | 代表企业 |
---|---|---|---|---|
第一次浪潮 | 1980年前后 | 个人计算机 | 信息处理 | Intel、AMD、IBM |
第二次浪潮 | 1995年前后 | 互联网 | 信息传输 | 雅虎、谷歌、阿里巴巴 |
第三次浪潮 | 2010年前后 | 物联网、云计算和大数据 | 信息爆炸 | 亚马逊、谷歌、阿里云 |
注:信息化浪潮每15年一次。
存储设备容量不断增加
存储单位:bit、Byte、KB、MB、GB、TB、PB、EB(ZB、YB、BB、NB、DB)
CPU处理能力大幅提升
网络带宽不断增加
人类自古以来在科学研究上先后经历了实验、理论、计算和数据四种范式:
大数据计算模式 | 解决问题 | 代表产品 |
---|---|---|
批处理计算 | 针对大规模数据的批量处理 | MapReduce、Spark等 |
流计算 | 针对流数据的实时计算 | Strom、Stream、银河流数据处理平台等 |
图计算 | 针对大规模图结构数据的处理 | Pregel、GraphX、PowerGraph等 |
查询分析计算 | 大规模数据的存储管理和查询分析 | Dremel、Hive等 |
通过网络提供可伸缩的、廉价的分布式计算能力
物物相连的互联网
从技术架构上来看,物联网可分为四层:感知层、网络层、处理层和应用层
Hadoop是一个开源分布式计算平台
Hadoop的核心包括:HDFS(前身:NDFS)和MapReduce。
Hadoop分布式文件系统,是GFS的开源实现
分布式文件系统(DFS)是一种通过网络实现文件在多台主机上进行分布式存储的文件系统
分布式文件系统的设计目标主要包括:透明性、并发控制、可伸缩性、容错以及安全需求等。
以数据块为单位进行存储(1.0默认64MB)
**目的:**最小化寻址开销
好处:
名称节点的核心数据结构:FsImage和EditLog。
NameNode | DataNode |
---|---|
存储元数据 | 存储文件内容 |
元数据存在内存中 | 文件内容保存在磁盘中 |
保存文件Block于DataNode间的映射关系 | 维护Block与DataNode本地文件的映射关系 |
作用:
HDFS的命名空间包含目录、文件和块。
HDFS集群中只有一个命名空间,并且只有唯一一个名称节点。
数据的冗余存储、数据存取策略、数据错误与恢复
优点:
冗余因子默认为3。
**内部请求:**第一个副本放置在写操作请求的数据节点上;
**外部请求:**挑一个不太忙的数据节点,第二个副本放置在不同于第一个副本的机架的数据节点上,第三个副本放置在第一个副本的机架的其他数据节点上。
当发现某个数据块副本对应的机架ID与客户端对应的ID一样时,优先选择该副本,否则就随机。
采用流水线复制的策略(4KB)
Hadoop DataBase(HBase)是针对谷歌BigTable的开源实现。
关系数据库 | HBase | |
---|---|---|
数据类型 | 具有丰富的数据类型和存储方式 | 未经解释的字符串 |
数据操作 | 丰富的操作 | 不存在复杂的表与表之间的关系 |
存储模式 | 基于行模式存储 | 基于列存储 |
数据索引 | 可以构建复杂的多个索引 | 只有一个索引——行键 |
数据维护 | 更新操作会用最新的当前值去替代旧值 | 生成一个新的版本,旧有版本依然保留 |
可伸缩性 | 很难实现横向扩展,纵向扩展空间有限 | 可实现灵活的水平扩展 |
HBase是一个稀疏、多维、持久化存储的映射表,它采用行键、列族、列限定符和时间戳进行索引。
“四维坐标”:[行键,列族,列限定符,时间戳]
Region标识符:“表名+开始主键、RegionID”
每个Region对象又是由多个Store组成的,每个Store对应了表中的一个列族的存储。
每个Store又包含了一个MemStore和若干个StoreFile。
Not Only SQL
类型 | 代表 |
---|---|
键值数据库 | Redis、Memcached |
列族数据库 | Cassandra、HBase |
文档数据库 | MongoDB |
图数据库 | Neo4j |
CAP理论最多同时满足三个中的两个。
CA。强调一致性(C)和可用性(A),放弃分区容忍性(P)。
eg:传统的关系数据库(MySQL、SQL Server等)。
CP。强调一致性(C)和分区容忍性(P),放弃可用性(A)。
eg:Neo4j、BigTable和HBase等。
AP。强调可用性(A)和分区容忍性(P),放弃一致性(C)。
eg:Cassandra、Dynamo等。
BASE
ACID:一个数据库事务具有ACID四性
云数据库是部署和虚拟化在云计算环境中的数据库。
MapReduce是一种分布式并行编程框架,以Map和Reduce为核心函数。
MapReduce的设计理念:计算向数据靠拢。
Map函数和Reduce函数都以
组件 | 1.0的问题 | 2.0的改进 |
---|---|---|
HDFS | 单一名称节点,存在单点失效问题 | 设计了HDFS HA,提供名称节点热备份机制 |
HDFS | 第一命名空间,无法实现资源隔离 | 设计了HDFS联邦,管理多个命名空间 |
MapReduce | 资源管理效率低 | 设计理新的资源管理框架YARN |
优势:
YARN体系结构包含了三个组件:
YARN的目标就是实现“一个集群多个框架”,即在一个集群上部署一个统一的资源调度管理框架YARN,在YARN之上可以部署其他各种计算框架。
提供了类似SQL的Pig Latin语言。
Pig会自动把用户编写的脚本转换成MapReduce作业在Hadoop集群上运行。
Tez是Apache开源的支持DAG作业的计算框架。
核心思想:将Map和Reduce两个操作进一步拆分。
一种分布式发表订阅消息系统。
满足在线实时处理和批量离线处理。
Spark是基于内存计算的大数据并行计算框架。
特点:
Scala是一门多范式编程语言,面向函数编程。
**概念:**分布式对象集合。
依赖关系:
流计算即针对流数据的实时计算。
Streams
流数据(Streams)是一个无限的Tuple序列。
Spouts
Spouts是Stream的源头,会从外部读取流数据并持续发出Tuple。
Bolts
Bolts既可以处理Tuple,也可以将处理后的Tuple作为新的Streams发给其他Bolts。
Topology
Spouts和Bolts组成的网络。
Stream Groupings
用于告知Topology如何在两个组件间进行Tuple的传送。
Spark Streaming与Storm的对比
Spark Streaming无法实现毫秒级的流计算,而Storm则可以实现毫秒级响应。
**含义:**对图结构的计算。
**BSP模型:**整体同步并行计算模型,又名“大同步模型”。
一次BSP计算过程包括一系列全局超步(超步就是指计算中的一次迭代),每个超步包括3个组件:
Pregel是一种基于BSP模型实现的并行图处理系统。