赞
踩
目录
大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。
(1)Volume:数据存储量大,计算量大。
(2)Value:价值密度低,对未来趋势与模式可预测分析,深度复杂分析。
(3)Variety:数据来源多,数据类型多,关联性强。
(4)velocity:数据存储、传输、处理速度快。数据更新增长速度快。
(1)数据采集:将数据抽取到临时的文件或数据库中。
(2)数据导入、清洗:数据去重、数据归一、异常处理。
(3)数据统计、分析、挖掘:预设主题,使用各类算法计算。
(4)结果可视化。
Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性:
分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,这些节点分为两类,一类叫“主节点”(Master Node)或者也被称为“名称结点”(NameNode),另一类叫“从节点”(Slave Node)或者也被称为“数据节点”(DataNode)
1.1.块
HDFS默认一个块64MB,一个文件被分成多个块,以块作为存储单位,块的大小远远大于普通文件系统,可以最小化寻址开销。
好处:
1.2.HDFS主要功能组件
NameNode(主节点或名称节点):
如何解决名称节点运行期间EditLog不断增大问题:SecondaryNameNode(第二名称节点)
第二名称结点是HDFS架构中的一个组成部分,它是用来保存名称节点中对HDFS 元数据信息的备份,并减少名称节点重启的时间。SecondaryNameNode一般是单独运行在一台机器上。
DataNode(从节点或数据节点):
2.1.HDFS体系结构的概述
HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode),名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问。集群中的数据节点一般是一个节点运行一个数据节点进程,负责处理文件系统客户端的读/写请求,在名称节点的统一调度下进行数据块的创建、删除和复制等操作。每个数据节点的数据实际上是保存在本地Linux文件系统中的。
2.2.HDFS命名空间管理
2.3.通信协议
2.4.客户端
2.5.HDFS体系结构的局限性
HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。
3.1.数据模型概述
3.2.数据坐标
HBase中需要根据行键、列族、列限定符和时间戳来确定一个单元格,因此,可以视为一个“四维坐标”,即[行键, 列族, 列限定符, 时间戳]
1.HBase功能组件
HBase的实现包括三个主要的功能组件:
(1)库函数:链接到每个客户端
(2)一个Master主服务器
(3)许多个Region服务器
2.表和Region
3.Region的定位
HBase的三层结构中各层次的名称和作用
1.HBase系统架构
Zookeeper是一个很好的集群管理工具,被大量用于分布式计算,提供配置维护、域名服务、分布式同步、组服务等。
2.Region服务器工作原理
3.HLog工作原理
通常,NoSQL数据库具有以下几个特点:
现在已经有很多公司使用了NoSQL数据库:
总结:
(1)关系数据库
优势:以完善的关系代数理论作为基础,有严格的标准,支持事务ACID四性,借助索引机制可以实现高效的查询,技术成熟,有专业公司的技术支持
劣势:可扩展性较差,无法较好支持海量数据存储,数据模型过于死板、无法较好支持Web2.0应用,事务机制影响了系统的整体性能等
(2)NoSQL数据库
优势:可以支持超大规模数据存储,灵活的数据模型可以很好地支持Web2.0应用,具有强大的横向扩展能力等
劣势:缺乏数学理论基础,复杂查询性能不高,大都不能实现事务强一致性,很难实现数据完整性,技术尚不成熟,缺乏专业团队的技术支持,维护较困难等
典型的NoSQL数据库通常包括键值数据库、列族数据库、文档数据库和图形数据库。
3.1.键值数据库
3.2.列族数据库
3.3.文档数据库
3.4.图形数据库
4.1.CAP:
CAP理论告诉我们,一个分布式系统不可能同时满足一致性、可用性和分区容忍性这三个需求,最多只能同时满足其中两个,正所谓“鱼和熊掌不可兼得”。
4.2.BASE
一个数据库事务具有ACID四性:
BASE的基本含义是基本可用(Basically Availble)、软状态(Soft-state)和最终一致性(Eventual consistency)。
云数据库是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易。云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点。
3.1.UMP系统概述
3.2.UMP系统架构
UMP系统中的角色包括:
依赖的开源组件包括:
3.2.UMP系统功能
MapReduce体系结构主要由四个部分组成,分别是:Client、JobTracker、TaskTracker以及Task
1)Client
2)JobTracker
3)TaskTracker
4)Task
Task 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动
4.1.Map端的Shuffle过程
合并(Combine)和归并(Merge)的区别:
两个键值对<“a”,1>和<“a”,1>,如果合并,会得到<“a”,2>,如果归并,会得到<“a”,<1,1>>
4.2.Reduce端的Shuffle过程
Spark的特点
Scala是一门现代的多范式编程语言,运行于Java平台(JVM,Java 虚拟机),并兼容现有的Java程序。
Scala的特性:
Scala是Spark的主要编程语言,但Spark还支持Java、Python、R作为编程语言
Scala的优势是提供了REPL(Read-Eval-Print Loop,交互式解释器),提高程序开发效率
Spark运行架构具有以下特点:
数据采集系统的基本架构一般有以下三个部分:
数据实时计算流程
本文参考了《大数据技术原理与应用(第3版)》教材配套讲义PPT,希望对大家学习有帮助。
如果想了解学习更多有关大数据相关知识,推荐林子雨老师的厦门大学数据库实验室,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。