大数据基础知识

打印 上一主题 下一主题

主题 917|帖子 917|积分 2751

目次
  第一章 大数据介绍
  1.大数据概念
  2.大数据的特点
  3.大数据的步调
  第二章 Hadoop
  1.Hadoop简介
  2.Hadoop的特性
  第三章 分布式文件系统HDFS
  1.HDFS相干概念
  2.HDFS体系结构
  3.HDFS存储原理
  第四章 分布式数据库HBase
  1.HBase简介
  2.HBase访问接口
  3.HBase数据模型
  4.HBase的实现原理
  5.HBase运行机制
  第五章 NoSQL数据库
  1.NoSQL简介
  2.NoSQL与关系数据库的比较
  3.NoSQL的四大类型
  4.NoSQL的三大基石(CAP、BASE、终极同等性)
  5.MongoDB
  第六章 云数据库
  1.云数据库概念
  2.云数据库特性
  3.云数据库系统架构
  第七章 MapReduce
  1.MapReduce模型简介
  2.MapReduce的体系结构
  3.MapReduce的工作流程
  4.Shuffle过程
   第八章 Spark
  1.Spark简介
  2.Scala简介
  3.Spark运行架构
  4.Spark运行根本流程
  第九章 流盘算
  1.流盘算概念
  2.流盘算处理流程
  3.数据实时收罗
  4.数据实时盘算
  5.实时查询服务
  第十章 大数据在差别领域的应用
  
  
  第一章 大数据介绍

1.大数据概念

大数据是指无法在一定时间内用通例软件工具对其内容进行抓取、管理和处理的数据集合。
2.大数据的特点

(1)Volume:数据存储量大,盘算量大。
(2)Value:价值密度低,对未来趋势与模式可猜测分析,深度复杂分析。
(3)Variety:数据来源多,数据类型多,关联性强。
(4)velocity:数据存储、传输、处理速率快。数据更新增长速率快。
3.大数据的步调

(1)数据收罗:将数据抽取到临时的文件或数据库中。
(2)数据导入、清洗:数据去重、数据归一、异常处理。
(3)数据统计、分析、挖掘:预设主题,使用各类算法盘算。
(4)效果可视化。
第二章 Hadoop

1.Hadoop简介



  • Hadoop是Apache软件基金会旗下的一个开源分布式盘算平台,为用户提供了系统底层细节透明的分布式基础架构
  • Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以摆设在廉价的盘算机集群中
  • Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce
  • Hadoop被公认为行业大数据标准开源软件,在分布式情况下提供了海量数据的处理能力
  • 险些所有主流厂商都围绕Hadoop提供开发工具、开源软件、贸易化工具和技术服务,如谷歌、雅虎、微软、思科、淘宝等,都支持Hadoop
2.Hadoop的特性

Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性:

   •   高可靠性    •   高效性    •   高可扩展性    •   高容错性    •   成本低    •   运行在Linux平台上    •   支持多种编程语言  
   

  第三章 分布式文件系统HDFS

  
分布式文件系统在物理结构上是由盘算机集群中的多个节点构成的,这些节点分为两类,一类叫“主节点”(Master Node)大概也被称为“名称结点”(NameNode),另一类叫“从节点”(Slave Node)大概也被称为“数据节点”(DataNode)

  1.HDFS相干概念

  
1.1.块

  
HDFS默认一个块64MB,一个文件被分成多个块,以块作为存储单位,块的大小远宏大于普通文件系统,可以最小化寻址开销。

  利益:
  

  • 支持大规模文件存储
  • 简化系统筹划
  • 适合数据备份
  1.2.HDFS主要功能组件
  NameNode(主节点或名称节点):
  

  • 存储元数据
  • 元数据生存在内存中
  • 生存文件,block,datanode之间的映射关系
     (1)在HDFS中,名称节点(NameNode)负责管理分布式文件系统的定名空间(Namespace),生存了两个核心的数据结构,即FsImage和EditLog。   

  • FsImage用于维护文件系统树以及文件树中所有的文件和文件夹的元数据
  • 操作日记文件EditLog中记录了所有针对文件的创建、删除、重定名等操作
     (2)名称节点记录了每个文件中各个块所在的数据节点的位置信息。      怎样解决名称节点运行期间EditLog不停增大问题:SecondaryNameNode(第二名称节点)
  第二名称结点是HDFS架构中的一个组成部分,它是用来生存名称节点中对HDFS 元数据信息的备份,并减少名称节点重启的时间。SecondaryNameNode一般是单独运行在一台呆板上。
  DataNode(从节点或数据节点):
  

  • 存储文件内容
  • 文件内容生存在磁盘
  • 维护了block id到datanode本地文件的映射关系
         (1)数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端大概是名称节点的调理来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表。          (2)每个数据节点中的数据会被生存在各自节点的本地Linux文件系统中。       2.HDFS体系结构

  2.1.HDFS体系结构的概述
  HDFS接纳了主从(Master/Slave)结构模型,一个HDFS集群包罗一个名称节点(NameNode)和若干个数据节点(DataNode),名称节点作为中心服务器,负责管理文件系统的定名空间及客户端对文件的访问。集群中的数据节点一般是一个节点运行一个数据节点历程,负责处理文件系统客户端的读/写请求,在名称节点的同一调理下进行数据块的创建、删除和复制等操作。每个数据节点的数据实际上是生存在本地Linux文件系统中的。
  2.2.HDFS定名空间管理
  

  • HDFS的定名空间包含目次、文件和块
  • 在HDFS1.0体系结构中,在整个HDFS集群中只有一个定名空间,并且只有唯一一个名称节点,该节点负责对这个定名空间进行管理
  • HDFS使用的是传统的分级文件体系,因此,用户可以像使用普通文件系同一样,创建、删除目次和文件,在目次间转移文件,重定名文件等
  2.3.通讯协议
  

  • HDFS是一个摆设在集群上的分布式文件系统,因此,很多数据需要通过网络进行传输
  • 所有的HDFS通讯协议都是构建在TCP/IP协议基础之上的
  • 客户端通过一个可设置的端口向名称节点自动发起TCP连接,并使用客户端协议与名称节点进行交互
  • 名称节点和数据节点之间则使用数据节点协议进行交互
  • 客户端与数据节点的交互是通过RPC(Remote Procedure Call)来实现的。在筹划上,名称节点不会自动发起RPC,而是响应来自客户端和数据节点的RPC请求
  2.4.客户端
  

  • 客户端是用户操作HDFS最常用的方式,HDFS在摆设时都提供了客户端
  • HDFS客户端是一个库,暴露了HDFS文件系统接口,这些接口隐藏了HDFS实现中的大部分复杂性
  • 严酷来说,客户端并不算是HDFS的一部分
  • 客户端可以支持打开、读取、写入等常见的操作,并且提供了类似Shell的下令行方式来访问HDFS中的数据
  • 此外,HDFS也提供了Java API,作为应用程序访问文件系统的客户端编程接口
  2.5.HDFS体系结构的局限性
  

  • 定名空间的限制:名称节点是生存在内存中的,因此,名称节点能够容纳的对象(文件、块)的个数会受到内存空间大小的限制。
  • 性能的瓶颈:整个分布式文件系统的吞吐量,受限于单个名称节点的吞吐量。
  • 隔离问题:由于集群中只有一个名称节点,只有一个定名空间,因此,无法对差别应用程序进行隔离。
  • 集群的可用性:一旦这个唯一的名称节点发生故障,会导致整个集群变得不可用。
  3.HDFS存储原理

  

  • 冗余数据生存
  • 数据存取计谋
  • 数据错误与恢复
  第四章 分布式数据库HBase

  1.HBase简介

  
HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的疏松数据。HBase的目标是处理非常巨大的表,可以通过程度扩展的方式,使用廉价盘算机集群处理由凌驾10亿行数据和数百万列元素组成的数据表。

  

  2.HBase访问接口

   

  3.HBase数据模型

   3.1.数据模型概述
  

  • HBase是一个希奇、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳
  • 每个值是一个未经解释的字符串,没有数据类型
  • 用户在表中存储数据,每一行都有一个可排序的行键和任意多的列
  • 表在程度方向由一个大概多个列族组成,一个列族中可以包含任意多个列,同一个列族内里的数据存储在一起
  • 列族支持动态扩展,可以很轻松地添加一个列族或列,无需预先定义列的数量以及类型,所有列均以字符串形式存储,用户需要自行进行数据类型转换
  • HBase中实验更新操作时,并不会删除数据旧的版本,而是天生一个新的版本,旧有的版本仍然生存(这是和HDFS只答应追加不答应修改的特性相干的)
   3.2.数据坐标
  HBase中需要根据行键、列族、列限定符时间戳来确定一个单位格,因此,可以视为一个“四维坐标”,即[行键, 列族, 列限定符, 时间戳]
  4.HBase的实现原理

  1.HBase功能组件
          HBase的实现包罗三个主要的功能组件:
          (1)库函数:链接到每个客户端
          (2)一个Master主服务器
          (3)很多个Region服务器
  

  • 主服务器Master负责管理和维护HBase表的分区信息,维护Region服务器列表,分配Region,负载均衡
  • Region服务器负责存储和维护分配给自己的Region,处理来自客户端的读写请求
  • 客户端并不是直接从Master主服务器上读取数据,而是在获得Region的存储位置信息后,直接从Region服务器上读取数据
  • 客户端并不依赖Master,而是通过Zookeeper来获得Region位置信息,大多数客户端甚至从来不和Master通讯,这种筹划方式使得Master负载很小
  2.表和Region
  

  • 开始只有一个Region,后来不停分裂
  • Region拆分操作非常快,接近瞬间,因为拆分之后的Region读取的仍然是原存储文件,直到“归并”过程把存储文件异步地写到独立的文件之后,才会读取新文件
  • 每个Region默认大小是100MB到200MB(2006年以前的硬件设置)
     

  • 每个Region的最佳大小取决于单台服务器的有效处理能力
  • 目前每个Region最佳大小建议1GB-2GB(2013年以后的硬件设置)
  • 同一个Region不会被分拆到多个Region服务器
  • 每个Region服务器存储10-1000个Region
    3.Region的定位
  

  • 元数据表,又名.META.表,存储了Region和Region服务器的映射关系
  • 当HBase表很大时, .META.表也会被分裂成多个Region
  • 根数据表,又名-ROOT-表,记录所有元数据的详细位置
  • -ROOT-表只有唯一一个Region,名字是在程序中被写死的
  • Zookeeper文件记录了-ROOT-表的位置
  

   HBase的三层结构中各层次的名称和作用
  

  5.HBase运行机制

  1.HBase系统架构
     1. 客户端       客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续数据访问过程       2. Zookeeper服务器       Zookeeper可以资助选举出一个Master作为集群的总管,并保证在任何时候总有唯一个Master在运行,这就制止了Master的“单点失效”问题   
Zookeeper是一个很好的集群管理工具,被大量用于分布式盘算,提供设置维护、域名服务、分布式同步、组服务等。

  

             3. Master               主服务器Master主要负责表和Region的管理工作:   

  • 管理用户对表的增长、删除、修改、查询等操作
  • 实现差别Region服务器之间的负载均衡
  • 在Region分裂或归并后,负责重新调整Region的分布
  • 对发生故障失效的Region服务器上的Region进行迁移
             4. Region服务器             –Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求    2.Region服务器工作原理
  

  • 用户读写数据过程
  • 缓存的刷新
  • StoreFile的归并
  3.HLog工作原理
  

  • 分布式情况必须要思量系统出错。HBase接纳HLog保证系统恢复
  • HBase系统为每个Region服务器设置了一个HLog文件,它是一种预写式日记(Write Ahead Log)
  • 用户更新数据必须首先写入日记后,才能写入MemStore缓存,并且,直到MemStore缓存内容对应的日记已经写入磁盘,该缓存内容才能被刷写到磁盘
  • Zookeeper会实时监测每个Region服务器的状态,当某个Region服务器发生故障时,Zookeeper会通知Master
  • Master首先会处理该故障Region服务器上面遗留的HLog文件,这个遗留的HLog文件中包含了来自多个Region对象的日记记录
  • 系统会根据每条日记记录所属的Region对象对HLog数据进行拆分,分别放到相应Region对象的目次下,然后,再将失效的Region重新分配到可用的Region服务器中,并把与该Region对象相干的HLog日记记录也发送给相应的Region服务器
  • Region服务器领取到分配给自己的Region对象以及与之相干的HLog日记记录以后,会重新做一遍日记记录中的各种操作,把日记记录中的数据写入到MemStore缓存中,然后,刷新到磁盘的StoreFile文件中,完成数据恢复
  • 共用日记优点:提高对表的写操作性能;缺点:恢复时需要分拆日记
  第五章 NoSQL数据库

  1.NoSQL简介

  通常,NoSQL数据库具有以下几个特点:
  

  • 灵活的可扩展性
  • 灵活的数据模型
  • 与云盘算紧密融合
  
如今已经有很多公司使用了NoSQL数据库:

  

  • Google
  • Facebook
  • Mozilla
  • Adobe
  • Foursquare
  • LinkedIn
  • Digg
  • McGraw-Hill Education
  • Vermont Public Radio
  • 百度、腾讯、阿里、新浪、华为……
  2.NoSQL与关系数据库的比较

  

   

   

   总结:
  
(1)关系数据库

  
优势:以完善的关系代数理论作为基础,有严酷的标准,支持事务ACID四性,借助索引机制可以实现高效的查询,技术成熟,有专业公司的技术支持

  
劣势:可扩展性较差,无法较好支持海量数据存储,数据模型过于死板、无法较好支持Web2.0应用,事务机制影响了系统的整体性能等

  
(2)NoSQL数据库

  
优势:可以支持超大规模数据存储,灵活的数据模型可以很好地支持Web2.0应用,具有强大的横向扩展能力等

  
劣势:缺乏数学理论基础,复杂查询性能不高,大都不能实现事务强同等性,很难实现数据完整性,技术尚不成熟,缺乏专业团队的技术支持,维护较困难等

  3.NoSQL的四大类型

  典型的NoSQL数据库通常包罗键值数据库、列族数据库、文档数据库图形数据库
  3.1.键值数据库
  

  3.2.列族数据库
  

   3.3.文档数据库
  

   3.4.图形数据库
  

  4.NoSQL的三大基石(CAP、BASE、终极同等性)

  4.1.CAP:
  

  • C(Consistency):同等性,是指任何一个读操作总是能够读到之前完成的写操作的效果,也就是在分布式情况中,多点的数据是同等的,大概说,所有节点在同一时间具有相同的数据
  • A:(Availability):可用性,是指快速获取数据,可以在确定的时间内返回操作效果,保证每个请求不管乐成大概失败都有响应;
  • P(Tolerance of Network Partition):分区容忍性,是指当出现网络分区的情况时(即系统中的一部分节点无法和其他节点进行通讯),分离的系统也能够正常运行,也就是说,系统中任意信息的丢失或失败不会影响系统的继续运作。
  CAP理论告诉我们,一个分布式系统不可能同时满足同等性、可用性和分区容忍性这三个需求,最多只能同时满足其中两个,正所谓“鱼和熊掌不可兼得”。
  4.2.BASE
  

  
一个数据库事务具有ACID四性:

  

  • A(Atomicity):原子性,是指事务必须是原子工作单位,对于其数据修改,要么全都实验,要么全都不实验
  • C(Consistency):同等性,是指事务在完成时,必须使所有的数据都保持同等状态
  • I(Isolation):隔离性,是指由并发事务所做的修改必须与任何其它并发事务所做的修改隔离
  • D(Durability):长期性,是指事务完成之后,它对于系统的影响是永久性的,该修改即使出现致命的系统故障也将一直保持
  
       BASE的根本寄义是根本可用(Basically Availble)、软状态(Soft-state)和终极同等性(Eventual consistency)。

  5.MongoDB

  

  • 提供了一个面向文档存储,操作起来比较简朴和轻易
  • 可以设置任何属性的索引来实现更快的排序
  • 具有较好的程度可扩展性
  • 支持丰富的查询表达式,可轻易查询文档中内嵌的对象及数组
  • 可以实现更换完成的文档(数据)大概一些指定的数据字段
  • MongoDB中的Map/Reduce主要是用来对数据进行批量处理和聚合操作
  • 支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等语言
  • MongoDB安装简朴
  第六章 云数据库

  1.云数据库概念

  
云数据库是摆设和虚拟化在云盘算情况中的数据库。云数据库是在云盘算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复设置,让软、硬件升级变得更加轻易。云数据库具有高可扩展性、高可用性、接纳多租形式和支持资源有效分发等特点。

  2.云数据库特性

  

  • 动态可扩展
  • 高可用性
  • 较低的使用代价
  • 易用性
  • 高性能
  • 免维护
  • 安全
  3.云数据库系统架构

  
3.1.UMP系统概述

     UMP   系统是低成本和高性能的   MySQL   云数据库方案      
3.2.UMP系统架构

  
UMP系统中的角色包罗:

  

  • Controller服务器
  • Proxy服务器
  • Agent服务器
  • Web控制台
  • 日记分析服务器
  • 信息统计服务器
  • 愚公系统
  
依赖的开源组件包罗:

  

  • Mnesia
  • LVS
  • RabbitMQ
  • ZooKeeper
  
3.2.UMP系统功能

  

  • 容灾
  • 读写分离
  • 分库分表
  • 资源管理
  • 资源调理
  • 资源隔离
  • 数据安全
  第七章 MapReduce

  1.MapReduce模型简介

  

  • MapReduce将复杂的、运行于大规模集群上的并行盘算过程高度地抽象到了两个函数:Map和Reduce
  • 编程轻易,不需要把握分布式并行编程细节,也可以很轻易把自己的程序运行在分布式系统上,完成海量数据的盘算
  • MapReduce接纳“分而治之”计谋,一个存储在分布式文件系统中的大规模数据集,会被切分成很多独立的分片(split),这些分片可以被多个Map使命并行处理
  • MapReduce筹划的一个理念就是“盘算向数据靠拢”,而不是“数据向盘算靠拢”,因为,移动数据需要大量的网络传输开销
  • MapReduce框架接纳了Master/Slave架构,包罗一个Master和若干个Slave。Master上运行JobTracker,Slave上运行TaskTracker
  • Hadoop框架是用Java实现的,但是,MapReduce应用程序则不一定要用Java来写
  2.MapReduce的体系结构

  
MapReduce体系结构主要由四个部分组成,分别是:Client、JobTracker、TaskTracker以及Task

  
1)Client

  

  • 用户编写的MapReduce程序通过Client提交到JobTracker端
  • 用户可通过Client提供的一些接口查看作业运行状态
  
2)JobTracker

  

  • JobTracker负责资源监控和作业调理
  • JobTracker 监控所有TaskTracker与Job的健康状况,一旦发现失败,就将相应的使命转移到其他节点
  • JobTracker 会跟踪使命的实验进度、资源使用量等信息,并将这些信息告诉使命调理器(TaskScheduler),而调理器会在资源出现空闲时,选择符合的使命去使用这些资源
  
3)TaskTracker

  

  • TaskTracker 会周期性地通过“心跳”将本节点上资源的使用情况和使命的运行进度汇报给JobTracker,同时接收JobTracker 发送过来的下令并实验相应的操作(如启动新使命、杀死使命等)
  • TaskTracker 使用“slot”等量分别本节点上的资源量(CPU、内存等)。一个Task 获取到一个slot 后才有时机运行,而Hadoop调理器的作用就是将各个TaskTracker上的空闲slot分配给Task使用。slot 分为Map slot 和Reduce slot 两种,分别供MapTask 和Reduce Task 使用
  
4)Task

  
Task 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动

  3.MapReduce的工作流程

  

  4.Shuffle过程

  4.1.Map端的Shuffle过程
   

  

  • 每个Map使命分配一个缓存
  • MapReduce默认100MB缓存
  • 设置溢写比例0.8
  • 分区默认接纳哈希函数
  • 排序是默认的操作
  • 排序后可以归并(Combine)
  • 归并不能改变终极效果
  • 在Map使命全部结束之进步行归并
  • 归并得到一个大的文件,放在本地磁盘
  • 文件归并时,如果溢写文件数量大于预定值(默认是3)则可以再次启动Combiner,少于3不需要
  • JobTracker会一直监测Map使命的实验,并通知Reduce使命来领取数据
  
归并(Combine)和归并(Merge)的区别:

  
两个键值对<“a”,1>和<“a”,1>,如果归并,会得到<“a”,2>,如果归并,会得到<“a”,<1,1>>

  4.2.Reduce端的Shuffle过程
  

  • Reduce使命通过RPC向JobTracker询问Map使命是否已经完成,若完成,则领取数据
  • Reduce领取数据先放入缓存,来自差别Map呆板,先归并,再归并,写入磁盘
  • 多个溢写文件归并成一个或多个大文件,文件中的键值对是排序的
  • 当数据很少时,不需要溢写到磁盘,直接在缓存中归并,然后输出给Reduce

   第八章 Spark

  1.Spark简介

  Spark的特点
  

  • 运行速率快:使用DAG实验引擎以支持循环数据流与内存盘算
  • 轻易使用:支持使用Scala、Java、Python和R语言进行编程,可以通过Spark Shell进行交互式编程
  • 通用性:Spark提供了完整而强大的技术栈,包罗SQL查询、流式盘算、呆板学习和图算法组件
  • 运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于Amazon EC2等云情况中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源
  2.Scala简介

  
Scala是一门现代的多范式编程语言,运行于Java平台(JVM,Java 虚拟机),并兼容现有的Java程序。

  
Scala的特性:

  

  • Scala具备强大的并发性,支持函数式编程,可以更好地支持分布式系统
  • Scala语法简洁,能提供优雅的API
  • Scala兼容Java,运行速率快,且能融合到Hadoop生态圈中
  
Scala是Spark的主要编程语言,但Spark还支持Java、Python、R作为编程语言

  
Scala的优势是提供了REPL(Read-Eval-Print Loop,交互式解释器),提高程序开发服从

  3.Spark运行架构

  

  • Spark运行架构包罗集群资源管理器(Cluster Manager)、运行作业使命的工作节点(Worker Node)、每个应用的使命控制节点(Driver)和每个工作节点上负责详细使命的实验历程(Executor)
  • 资源管理器可以自带或Mesos或YARN
  

  • 一个Application由一个Driver和若干个Job构成,一个Job由多个Stage构成,一个Stage由多个没有Shuffle关系的Task组成
  • 当实验一个Application时,Driver会向集群管理器申请资源,启动Executor,并向Executor发送应用程序代码和文件,然后在Executor上实验Task,运行结束后,实验效果会返回给Driver,大概写到HDFS大概其他数据库中
  4.Spark运行根本流程

  

  • 首先为应用构建起根本的运行情况,即由Driver创建一个SparkContext,进行资源的申请、使命的分配和监控
  • 资源管理器为Executor分配资源,并启动Executor历程
  • SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler分析成Stage,然后把一个个TaskSet提交给底层调理器TaskScheduler处理;Executor向SparkContext申请Task,Task Scheduler将Task发放给Executor运行,并提供应用程序代码
  • Task在Executor上运行,把实验效果反馈给TaskScheduler,然后反馈给DAGScheduler,运行完毕后写入数据并开释所有资源
  

  
Spark运行架构具有以下特点:

  

  • 每个Application都有自己专属的Executor历程,并且该历程在Application运行期间一直驻留。Executor历程以多线程的方式运行Task
  • Spark运行过程与资源管理器无关,只要能够获取Executor历程并保持通讯即可
  • Task接纳了数据本地性和推测实验等优化机制
  第九章 流盘算

  1.流盘算概念

     流盘算:实时获取来自差别数据源的海量数据,经过实时分析处理,获得有价值的信息。    2.流盘算处理流程

     流盘算的处理流程一般包含三个阶段:数据实时收罗、数据实时盘算、实时查询服务。   

  3.数据实时收罗

  

  • 数据实时收罗阶段通常收罗多个数据源的海量数据,需要保证明时性、低延迟与稳定可靠
  • 以日记数据为例,由于分布式集群的广泛应用,数据分散存储在差别的呆板上,因此需要实时汇总来自差别呆板上的日记数据
  • 目前有很多互联网公司发布的开源分布式日记收罗系统均可满足每秒数百MB的数据收罗和传输需求,如:
  • Facebook的Scribe
  • LinkedIn的Kafka
  • 淘宝的Time Tunnel
  • 基于Hadoop的Chukwa和Flume
  数据收罗系统的根本架构一般有以下三个部分:
  

  • Agent:自动收罗数据,并把数据推送到Collector部分
  • Collector:接收多个Agent的数据,并实现有序、可靠、高性能的转发
  • Store:存储Collector转发过来的数据(对于流盘算不存储数据)
  

  4.数据实时盘算

  

  • 数据实时盘算阶段对收罗的数据进行实时的分析和盘算,并反馈实时效果
  • 经流处理系统处理后的数据,可视情况进行存储,以便之后再进行分析盘算。在时效性要求较高的场景中,处理之后的数据也可以直接丢弃
  

                                 数据实时盘算流程
  5.实时查询服务

  

  • 实时查询服务:经由流盘算框架得出的效果可供用户进行实时查询、展示或储存
  • 传统的数据处理流程,用户需要自动发出查询才能获得想要的效果。而在流处理流程中,实时查询服务可以不停更新效果,并将用户所需的效果实时推送给用户
  • 虽然通过对传统的数据处理系统进行定时查询,也可以实现不停地更新效果和效果推送,但通过这样的方式获取的效果,仍然是根据过去某一时候的数据得到的效果,与实时效果有着本质的区别
  第十章 大数据在差别领域的应用

   

  

  • 推荐系统:为用户推荐相干商品
  • 生物医学
  • 盛行病猜测
  • 智慧医疗:使用医疗大数据,促进优质医疗资源共享、制止患者重复检查、促进医疗智能化
  • 生物信息学:使用生物大数据,深入了解生物学过程、疾病致病基因等
  • 物流:基于大数据和物联网技术的智能物流,可以提高物流信息化和智能化程度,低落物流成本和提高物流服从
  • 都会管理
  • 智能交通:使用交通大数据,实现交通实时监控、交通智能诱导、公共车辆管理、旅行信息服务、车辆辅助控制等各种应用
  • 环保监测:监测分析大气和水污染情况,为污染治理提供依据
  • 都会规划:好比,使用住房贩卖和出租数据,可以评价一个城区的住房分布
  • 安防领域:基于视频监控、人口信息、地理数据信息等,使用大数据技术实现智能化信息分析、猜测和报警
  • 金融
  • –高频交易:是指从那些人们无法使用的极为短暂的市场变革中寻求赢利的盘算机化交易。接纳大数据技术决定交易
  • –市场情绪分析和信贷风险分析
  • 汽车:无人驾驶汽车,实时收罗车辆各种行驶数据和四周情况,使用大数据分析系统高效分析,迅速做出各种驾驶动作,引导车辆安全行驶
  • 零售行业:发现关联购买行为、进行客户群体细分
  • 餐饮行业:使用大数据为用户推荐消费内容、调整线下门店布局、控制店内人流量
  • 电信行业:客户离网分析
  • 能源行业:智能电网,以海量用户用电信息为基础进行大数据分析,可以更好理解电力客户用电行为,优化提升短期用电负荷猜测系统,提前预知未来2-3个月的电网需求电量、用电高峰和低谷,公道筹划电力需求响应系统
  • 体育娱乐:2014巴西天下杯,基于海量角逐数据和球员练习数据,指定有针对性球队练习筹划,资助德国国家队问鼎2014天下杯冠军
  • 安全领域:应用大数据技术防御网络攻击,警察应用大数据工具防备犯罪
  • 政府领域:使用大数据改进选举计谋
  
  本文参考了《大数据技术原理与应用(第3版)》课本配套课本PPT,希望对各人学习有资助。
  如果想了解学习更多有关大数据相干知识,推荐林子雨老师的厦门大学数据库实验室,
  网址:https://dblab.xmu.edu.cn/
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊雷无声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表