大数据技术及应用

##一.生活中的大数据
身边的大数据:沃尔玛消费观念(啤酒和尿布)、榨菜指数
医疗大数据:图像诊断(体内的胶囊相机)、预测冬季流感(2009年冬季流感的传播及特定的地区和州)、基因健康
教育大数据:Hiptype电子书阅读分析工具、中国大学MOOC网、谷歌翻译系统
商业大数据:超市预测高中生怀孕,酒店客户流失分析
娱乐大数据:预测奥斯卡大奖、绿镜(大数据分析工具)
服务大数据:用户画像、网站智能机器人、精准扶贫

##大数据基本概念
信息:
指人们对于客观事务属性和运动状态的反映。反映的是关于某一客观系统中,某一事物的存在方式或某一时刻的运动状态。
特征:有用的;内容是关于客观事物或思想方面的知识;可以在空间和时间上被传递;需要一定的形式来表示。

数据:
是反映客观事物存在方式和运动状态的记录,是信息的载体。泛指那些可被计算机接受并能够被计算机处理的符号,是数据库中存储的基本对象。
特征:”型“与值之分;使用受数据类型和取值范围的约束;具有多种表现形式;明确的语义。

数据库(DB):
是一定的组织方式将相关的数据组织在一起,长期存储在计算机内,可为多个用户共享,与应用程序彼此独立,统一管理的数据集合。
数据库是数据库系统的核心部分,是数据库系统的管理对象。
特征:一定的数据模型组织、描述和存储;多用户共享;冗余度小;数据独立性高;易扩展。

数据库管理系统(DBMS):
是位于用户与操作系统之间,具有数据定义、管理和操纵功能的软件集合。例如SQL、MySQL、Oracle等。
功能:数据定义功能;数据操纵功能;数据库的运行管理功能;数据库的建立和维护功能。

数据库系统(DBS):
是支持数据库得以运行的基础性的系统,即整个计算机系统。数据库是数据库系统的核心和管理对象。数据库系统是实现有组织、动态的存储大量相关的结构化数据、方便各类用户访问数据库的计算机软/硬件资源的集合。

大数据(BD):
是一个综合的概念,包括具有独特性质,且难以进行管理和分析的数据集合。

##数据处理即发展
数据处理:
利用计算机对各种各种类型的数据进行加工处理,包括对数据的采集、整理、存储、分类、排序、检索、维护、加工、统计和传输等一系列的操作过程。
数据管理技术的发展经历了从人工管理、文件系统、数据库系统和分布式系统的4个阶段。

人工数据处理阶段
硬件:外存储器只有卡片机,纸带机,磁带机
软件:没有操作系统软件和数据管理软件支持
客户端和数据集 一对一
数据处理特点:程序与数据之间缺少独立性;数据处理方式是批处理;没有支持数据管理的专门软件;面向应用的数据组织,数据不具有共享性。

文件数据处理阶段
硬件:磁鼓、磁盘联机的外存储器
软件:高级语言和操作系统软件
特点:长期保存数据;应用程序与数据之间有独立性;数据文件形式多样化;一定的数据冗余和数据的不一致性。

数据库系统处理阶段
硬件:大容量外存储器
软件:数据库管理系统
特点:数据共享性高;数据整体结构化;较高的数据独立性;完善的统一的数据管理和控制功能。

分布式文件系统处理阶段
名称结点,数据结点。
特点:数据分散存储;数据无结构;数据一致性;较高的数据可靠性;更多的源代码的开发接口;跨平台移植性;事务管理花费高;一次写入多次读取。

##大数据特征
大数据区别与小数据有如下四个关键特征:数据量大,数据类型多,处理速度快和数据价值高。
大体量(Volume)
多样性(Variety)
数据类型多,包括结构化数据和非结构化数据。
时效性(Velocity)
包括两个方面:增长速度和处理速度
大价值(Value)
大数据的数据价值隐藏在海量数据中,表现为价值高但价值密度低的特点。

##大数据的关键技术
大数据技术包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
关键技术如下:数据采集、大数据存储与管理、大数据分析、大数据可视化

##大数据存储与管理
结构化数据可用二维表结构来表达实现的数据,以传统的表格形式存储在数据库和数据仓库中。
非结构化数据是不方便使用数据库二维逻辑表来表现的数据。
大数据包括结构化、半结构化和非结构化数据。

##大数据可视化
数据可视化是一种媒介,探索,展示和表达数据含义的一种方法。

##Hadoop基础
简述
Hadoop采用分布式存储和并行执行机制,为整个数据群带来了非常高的宽带,能大大提高效率。事实上是用大量的廉价机器组成的集群去执行大规模运算,包括大规模的计算和大规模的存储。

##Hadoop概述
Hadoop是Apache的子项目,具有可靠性和扩展性的一个开源分布式计算的存储系统。基于Java语言开发,具有很好的跨平台特性。

Hadoop的核心是分布式文件系统HDFS和MapReduce。HDFS(Hadoop分布式系统)可实现大数据的存储,MapRedure可实现大数据复杂度计算。

Hadoop特点:高可靠性(自动维护多个副本,即使有一台服务器硬件坏掉,仍正常工作)、高效性(并行方式处理数据,动态移动,加快速度)、低成本(廉价)、高可扩展性(分布式计算与存储,添加节点或集群,提升性能、容量)、支持多种编程语言(提供java及C/C++)。

Hadoop组件
Hadoop组件由下层的Hadoop核心构件以及上层的Hadoop生态系统共同集成,而上层的生态系统是基于下层的存储和计算来完成的。

##Hadoop的生态系统

目前Hadoop生态系统大体可分为两类:Hadoop1.0系统和Hadoop2.0系统

###Hadoop1.0系统
Hadoop1.0生态系统主要指Hadoop1.X及其以前的版本,并包含很多相关子系统的完整的大数据处理生态系统。

##Hadoop2.0系统

区别:
Hadoop2.0生态系统与Hadoop1.0生态系统相比,增加多个组件,其中YARN、Spark大大提升Hadoop较前版本的功能。

Hadoop2.0是针对Hadoop1.0问题进行解决和优化。Hadoop1.0只支持单一的计算模型MapReduce,Hadoop2.0加入Yarn资源调度器,支持多种类型的计算模型,Yarn同时可以给不同的计算任务进行计算资源的分配。

##Hadoop系统架构
Hadoop系统架构用HDFS、MapReduce和Spark核心组件组成。

##HDFS分布式文件系统架构

HDFS采用主从架构,一个集群,有一个管理节点和多个工作节点,一个计算机可以运行多个工作节点,但在实际应用中,往往一台计算机只运行一个数据节点。
NameNode 管理节点 DataNode 数据节点

在HDFS中,一个文件通常被分割成若干个块(Block),存储在一组数据节点DataNode上,同时建立Block和DataNode之间的映射。

##Mapreduce的计算架构
MapReduce是Google公司2004年提出的,能并发处理海量数据的并行编程模型,特点是简单易学,使用广泛,能降低并行编程难度,轻松编写高效简单的并行程序。

MapReduce2.0版本YARN(资源管理框架)是效率更高的资源管理核心。

MapReducer经由MapReducer1.0到MapReducer2.0的版本更替,两个版本有相同的编程模型和数据处理引擎。只是MapReducer2.0是运行与资源管理框架YARN之上的计算框架。
MapReducer2.0的运行环境由通用资源管理系统YARN和作业控制进程ApplicationMaster,其中YARN负责资源管理的调度ApplicationMaster负责作业的管理。
MapReduce将复杂且运行在大规模集群上的并行计算过程抽象到Map和Reduce两个函数。Map和Reduce处理数据的主要思想是将待处理数据分解成许多小的数据集,由每台服务器分别运行,所有小的数据集可以完全并行地进行计算。(将大分解成小)

Hadoop的job client(顾客,客户)提交作业和配置信息给ResourceManager,
ResourceManager负责分发这些软件和配置信息给slave节点调度任务,并且监控这些slave节点的执行过程,将状态和诊断信息反馈给job client。

YARN资源管理框架
大数据使用的资源大多是一个共用集群资源,资源使用过程中就需要进行资源控制。YARN主要作用是强化控制和使用资源管理功能。YARN架构如图:

MapReduce计算架构
MapReduce的计算框架,在数据运算时,Hadoop需要将中间产生运算效果存储在硬盘中;

Spark的计算框架
Spark是一个可应用于大规模数据处理的快速、通用引擎,基于DAG的任务调度执行机制,优于MapReduce的迭代执行机制。结构一体化,功能多元化优势。

##Hadoop应用架构
Hadoop应用系统体系架构,是由数据来源、大数据层和数据访问层构成。

大数据平台应用架构的层次划分(分类方法一):
在这里插入图片描述
大数据平台应用架构的层次划分(分类方法二):
在这里插入图片描述

Hadoop应用案例:
Wal-Mart(沃尔玛)分析顾客商品搜索行为找商机;
eBay用Hadoop拆解非结构性巨量数据,降低数据仓储负载;

#HDFS分布式文件系统
##HDFS概述
分布式文件系统,hadoop的核心系统

优点:高容错性、适合大数据处理、流式数据访问、简单的文件模型、高效性(一次存储多次访问)、强大的跨平台兼容性
局限:低延时数据访问受限、不适合小文件存储、不适合并发写入文件、不支持随机修改文件

HDFS基本组成

HDFS采用主从结构模型,HDFS集群由数据块(block)、名称节点(NameNode)、数据节点(DataNode)。其中管理文件系统的是名称节点和数据节点。

HDFS体系结构
在这里插入图片描述

##HDFS核心功能

文件系统命名空间(只有一个命名空间,只有唯一的名称节点)

数据复制(极高的容错机制,文件数据块都有副本;严格要求在任何时候只能有一个写入者)

机架感知(改进数据的可靠性、可用性和网络带宽的利用率)

大型HDFS实例一般运行在跨越多个机架的计算机集群上。同一个机架内的两台机器间的带宽会比不同机架的两台机器间的带宽大,通过一个机架感知的过程,名称节点可以确定每个数据节点所属的机架。

集群均衡(支持数据均衡策略)

数据完整性(HDFS客户端实现对HDFS文件内容的检验和检查,若不同,客户端从其他节点获取数据)

##块和节点


默认的最基本的存储单位是数据块。(每个块尽可能存储于不同的数据节点)

源数据描述数据的数据

以块存储的优点:支持大规模文件存储、简化系统设计、适合数据备份、集中的存储、安全性高

节点
名称节点(NameNode)是分布式文件系统的管理者,提供一个分级的文件组织形式,负责管理文件系统的命名空间(Nameapce,保存了两个核心的数据结构Fslmage(元数据镜像)和EditLog(操作日志))、集群配置信息和存储块的复制等。

数据节点(DataNode)是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据调度来进行数据的存储和检索,并且向名称节点定期发送自己存储的块的列表。

HDFS写数据
在这里插入图片描述

过程:
调用Create() —— 验证——调用Write()——写入数据——保存内部队列——调用Close()

错误处理机制
移除故障节点,并记录未完成写入的数据;
删除不完整的数据块,由正常数据节点组成新的数据管道;
根据备份数,完成数据写入备份。

HDFS读数据
在这里插入图片描述

过程
调用Open()——调用名称节点——调用Read()——连接文件第一个块的数据节点并读取完——查找下一个数据节点——调用Close()
在这里插入图片描述

错误处理机制
检查访问的数据节点的状态,若故障则访问另一个节点;
输入流流对象记录故障节点,防止重复访问;
检查读取的数据块的完整性,若有错误则读取其备份块。

HDFS常用命令及实例
创建命令 -mkdir 查看目录下的文件 ls 复制文件 -cp
移动文件 -mv 上传文件 -put 下载文件 -get
删除文件 -rm

上传本地文件过程在这里插入图片描述
##HBase概述

HBase是对Google公司BigTable的开源实现。
特点:容量大、基于列的数据存储、无固定模式、数据松散、数据类型单一化、高性能
在这里插入图片描述
在这里插入图片描述

##数据库系统概述

数据库系统(DBS)由计算机软件、硬件、数据库、数据库管理系统、数据库应用程序、数据库管理员与用户组成。

数据库是指存储在计算机内有组织可共享的数据集合。

数据库管理系统的功能:数据定义、数据操纵,数据库管理、数据库维护。

常见的数据库管理系统分类
关系型:Access , SQL Server ,Oracle ,Sybase ,mySQL
非关系型:Mongo DB ,Redis ,SQLite

数据模型分类
概念层数据模型:实体,属性,域,联系(1:1 ,1:n , m,n)
E-R图:
在这里插入图片描述

组织层数据模型:层次模型、网状模型、关系模型、面向对象模型

层次模型是用树形结构来表示各类实体以及实体之间的联系;

网状模型是使用网状结构来表示各类实体以及实体之间的联系,是对层次模型的拓展;

关系模型是一种简单地二维表结构,每个二维表称作一个关系,关系中每一行数据称作一条记录,每一列数据称作属性,列标题称作属性名。

数据库设计
在这里插入图片描述

##Hive数据仓库工具

Hive是一个基于Hadoop的数据仓库工具。

数据仓库(Data Warehouse)是一个面向主题的、集成的。相对稳定的、反映历史变化的数据集合,用于支持管理决策。

Hive的特点
可扩展性、可延展性、容错性、低约束性
Hive的系统架构
在这里插入图片描述

Hive与传统数据库的差异
在这里插入图片描述

Hive基本操作
在这里插入图片描述

Spark概述
Spark是一个通用的并行计算框架,本质上是一个基于mapreduce算法模型实现的分布式计算框架。spark解决了hadoop和mapreduce的性能缺陷,主要是将job中间输出的结果保存在内存中,从而不需要读写HDFS,能够更好地适用于数据挖掘和机器学习等。

技术框架
四个功能模块:Spark SQ(查询hive中的数据)L、批处理的流式(实时)计算框架(Streaming)、分布式图处理框架(GraphX)、机器学习库(MLIib)

工作流程
运行架构:集群资源管理器(Cluster Manager)、运行作业任务的工作节点(Worker Node)、每个应用的任务控制节点(Driver)、每个工作节点上负责具体任务的执行进程(Executor)
在这里插入图片描述

在Spark中,一个应用由一个任务控制节点(Dricer)和若干个作业(Job)构成,一个作业由多个阶段(Stage)构成,一个阶段由多个任务(Task)构成。

检查点支持
Spark的RDD之间维护了血缘关系(lineage),一旦某一个RDD失败了,则可以由父RDD重建。

Spark特点
易于使用、支持交互式、支持SQL查询、支持流式计算、高可用、兼容性强(支持hadoop YARN,可共享存储数据)、文件格式丰富

Spark与Hadoop比较
在这里插入图片描述

RDD(弹性分布式数据库)
是分布式内存的一个抽象概念,是只读的记录分区的集合,只能通过其他RDD执行确定的转换操作而创建,然而这些限制使得实现容错的开销很低,充分体现了Spark的并发操作和灵活的容错性能。

RDD属性
一组分片,即数据集的基本组成单位。对于RDD,每个分片都会被一个计算任务处理并决定并行计算的粒度。用户可以指定RDD的分片个数,否则采用默认值。默认值就是程序分配到的CPU Core的数目。

一个计算每个分区的函数
RDD是以分片为单位的。每个RDD都会实现Compute函数已达到这个目的。

RDD之间的依赖关系
一个Partitioner不但决定RDD本身的分片数量,还决定parent RDD Shuffle输出时的分片数量。
一个列表存储存取每个Partition的优先位置,就是保存每个Partition所在的块的位置

大数据可视化
数据可视化是一种媒介,是探索、展示和表达数据含义的一种方法。是从数字到图形的转化,从大数据到决策辅助系统的转变,从数据分析到预警机制的转变。数据可视化可以高效率的进行数据洞察决策。
数据可视化中最重要的一条就是:数据和它所代表的事物之间的关联。
数据可视化包含的基本概念

  1. 数据空间:由n维属性和m个元素组成的数据集所构成的多维信息空间;
  2. 数据开发:指利用一定的算法和工具对数据进行定量的推演和计算;
  3. 数据分析:指对多维数据进行切片、块、旋转等动作剖析数据,从而多角度侧面观察数据;
  4. 数据可视化:指将大型数据集中以图形图像的形式表达,并利用数据分析和开发工具发现其中未知信息的过程。
    大数据应用实例
  5. 大数据问题分析环节
    数据的采集与存储、大数据间数据关联关系的建立、大数据分析与决策、大数据可视化
  6. 数据库的基本概念
    主键,又称主码,数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据表只能有一个主键,且主键的取值不能缺失,即不能为空值。
    外键,在关联式资料库中,每个资料表都是由关联来联系彼此的关系,资料表的主键会放在另一个资料表,当做属性以建立彼此的关联,这个属性就是外键。

matplotlib 数据可视化
pandas 数据分析

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值