一、 大数据基础概念
(一) 大数据的四个特性:
1. 数据量大(大数据摩尔定律)
2. 数据类型繁多(10%结构化数据+90%非结构化数据)
3. 处理速度快(注重秒级决策)
4. 价值密度低,商业价值高(只有少量数据有用)
(二) 大数据思维:
1. 全样而非抽样 采用全部数据查询而非采用抽样查询方式
2. 效率而非精确 抽样得出精确度,而大数据采用全样分析,不需要精确度
3. 相关而非因果
(三) 两大核心技术
1. 分布式存储
2. 分布式处理
(四) 大数据计算模式
1. 批处理计算 针对大规模数据的批量处理
2. 流计算 针对流数据的实时计算
3. 图计算 针对大规模图结构数据的处理
4. 查询分析计算 大规模数据的存储管理和查询分析
(五) 大数据与云计算、物联网的关系:
1. 云计算:(laaS PaaS SaaS )
云计算关键技术:虚拟化、分布式存储、分布式计算、多租户等:
2. 物联网:物与物相连,人与物相连,实现信息化的远程管理控制
3. 大数据与云计算、物联网的关系:
大数据继承于云计算。
云计算为大数据提供了技术基础,大数据为云计算提供用武之地;
云计算为物联网提供海量数据存储能力,物联网为云计算提供了广阔的运用空间。
物联网是大数据的重要来源,大数据为物联网数据分析提供支撑。
二、大数据处理架构Hadoop
(一) Hadoop简介:
Hadoop是基于Java语言开发的,具有很好地跨平台特性,并可以部署在廉价的计算机集群中;
Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)
Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据处理的能力。
(二) Hadoop的特性:
1. 高可靠性
2. 高效性
3. 高可扩展性
4. 高容错性
5. 成本低
6. 运行在Linux平台上
7. 支持多种编程语言
(三)Hadoop在企业中的应用架构:
(四) ApacheHadoop 版本区别:
(五) Hadoop项目结构
(六) 功能详解:Ubuntu系统……… 32位系统:
(七) Hadoop集群中的节点类型:
1. NameNode:负责协调集群中的数据存储
2. DataNode:存储被拆分的数据块
3. JobTracker:协调数据计算任务
4. TaskTracker:负责执行由JobTracker指派的任务
5. SecondaryNameNode:帮助NameNode收集文件系统运行的状态信息
自动化部署软件 : Docker
用TestDFSIO基准测试,来测试HDFS 的IO性能:
三、 分布式文件系统HDF
(一) HDFS实现的目标:
(1) 兼容廉价的硬件设备
(2) 流数据读写
(3) 大数据集
(4) 简单的文件模型
(5) 强大的跨平台兼容性
(二) 局限性:
1. 不适合低延迟数据访问
2. 无法高效存储大量小文件
3. 不支持多用户写入及任意修改文件
ª HDFS采用抽象的快概念可以带来以下几个明显的好处:
(1) 支持大规模文件存储:
(2) 简化系统设计:
(3) 适合数据备份:
名称节点:NameNode |
数据节点 DataNode |
存储元数据 |
存储文件内容 |
元数据保存在内存中 |
文件内容保存在磁盘中 |
保存文件,block,datanode之间的映射关系 |
维护了block id到datanode本地文件的映射关系 |
1. 名称节点:负责管理分布式文件系统的命名空间。
(1) FsImage : 用于维护文件系统树以及文件树中所有文件和文件夹的元数据。
(2) EditLog:记录了所有针对文件的创建,删除,重命名等操作。
2. 数据节点:负责数据的存储和读取;
(一)HDFS体系结构
1. 体系结构局限性:
(1) 命名空间的限制;
(2) 性能的瓶颈;
(3) 隔离问题;
(4) 集群的可用性;
A. 冗余数据保存
1. 加快数据传输速度
2. 容易检查数据错误
3. 保证数据可靠性
四、 分布式数据库HBase
(一) 概念:
是一个高可靠、高性能、面向列、可伸缩的分布式数据库。主要用来存储非机构化和办结构化的松散数据。
(二) HBase与传统关系数据库的对比分析:
1. HBase与传统的关系数据库的区别主要体现在一下几个方面:
区别 |
关系数据库 |
HBase |
数据类型 |
采用关系模型,具有丰富的数据类型和存储方式 |
采用了更加简单的数据模型,它把数据存储为未经技解释的字符串 |
数据操作 |
包含了丰富的操作,其中会涉及复杂的多表连接 |
操作则不存在复杂的表与表之间的关系,只有简单的插入、查询、删除 |
存储模式 |
居于行模式存储的 |
是基于列存储的,每个列族4都由几个文件保存,不同列 族 的文件时分离的 |
数据索引 |
可以针对不同列构建复杂的多个索引,以提高数据访问性能 |
只有一个索引---行键,通过巧妙的设计,HBase中年的所有的访问方法,或者通过行 键 访问,或者通过行键扫描,从而使得整个系统不会慢下来。 |
数据维护 |
更新操作会用最新的当前值去替换记录中的原来的旧值,旧值就被覆盖就不会存在 |
执行更新操作时,并不会删除旧的版本,而是生成一个新的版本,旧的版本仍然保留 |
可伸缩性 |
很难实现横向扩展,纵向扩展的空间也比较有限 |
HBase和BigTable这些分布式数据库就是为了实现灵活的水平扩展而开发的,能够轻易地通过在集群中增加或者减少硬件数量来实现性能的伸缩。 |
(三) HBase访问接口:
五、 NoSQL数据库
1. 简介:
a) 灵活的可扩展性 ª 特点
b) 灵活的数据模型 ª
c) 与云计算紧密融合ª