大数据
2020-06-30 21:29:00 51 举报
AI智能生成
登录查看完整内容
大数据思维导图
作者其他创作
大纲/内容
不适合低延迟数据访问
无法高效存储大量小文件
不支持多用户写入及任意修改文件
场景局限性
block是核心;采用主从结构模型,
计算集群架构:NameNode&&DataNode /网络互联/Rack机架
1.存储文件内容;2.文件内容保存在磁盘;3.维护block ID到datanode本地文件的映射关系
文件内容保存在磁盘
维护了block ID 到datanode本地文件的映射关系
DataNode
存储元数据;2元数据保存在内存中;3.保存文件,block,datanode之间的映射关系
用于维护文件爱你系统树以及文件数中所有文件及文件夹的元数据
FsImage
记录所有针对文件的创建、删除、重命名等操作
EditLog
NameNode
分布式文件系统
HDFS
未经解释的字符串
数据类型
简单的插入、查询、删除、清空等,不存在复杂的表与表之间的关系
数据操作
列模式,每个列族有几个文件保存,不同列族的文件时分离的
存储模式
一个索引:行健
数据索引
更新不删除数据旧版本,而是生成新的版本
数据维护
专为水平扩展开发
可伸缩性
传统DB的对比
并行批处理Hbase 表数据
Native JavaAPI
管理使用
Hbase Shell
数据统计,流式编程语言
Pig
类似SQL语言
Hive
异构系统在线访问
Thrift Gateway
REST风格,解除语言限制
REST Gateway
访问接口
Hase是一个稀疏、多维度、排序的映射表,索引是行健、列族、列限定符和时间戳
每个值是一个未经解释的字符串,没有数据类型
每一行都有一个可排序的行健和任意多列
列族支持动态扩展,所有列均以字符串形式存储,用户需要自行进行数据类型转换
更新操作,并不会删除数据旧的版本,
模型概述
表:组织数据;行:列族/列限定符/单元格/时间戳
行健、列族、列限定符和时间戳确定单元格
数据坐标
数据模型
链接到每个客户端
库函数
负责管理和维护HBase表的分区信息,维护Region服务器列表,分配Region,负载均衡
Master主服务器
多个Region 服务器
功能组件
记录了-ROOT-表的位置信息
Zookeeper文件
记录了.META。表的Region位置信息,-ROOT-表只能有一个Region
—Root-表
记录了用户数据表的Region位置信息,.META.表有多个Region,保存了HBase中所有用户数据表的Region位置信息
。META.表
三层架构
系统架构
用户读写
缓存刷新
StoreFile合并
Region工作原理
运行机制
Hive+HBase
Phoenix
HBase上构建SQlL引擎
Hindex
HBase+Redis
HBase+solar
引擎构建在HBase之上,既没有HBase进行任何改动,也不需要对上层应用做任何妥协
每插入一条数据需要向索引表插入数据,耗时双倍,对HBase集群压力双倍
Coprocessor
HBase二级索引
Ambari
Master-status
OpenTSDB
Ganglia
性能监视
行健(Row Key)
InMemory
Time To Live
性能优化
应用方案
HBase实现
HBase
Web2.0通常不需要严格的数据库事务
Web2.0并不要求严格的读写实时性
Web2.0通常不包含大量复杂的SQL查询(去结构化,存储空间换取更好的查询性能)
兴起原因
以完善的关系代数理论作为基础,有严格的标准,支持事务ACID四性,借助索引机制可以实现高效的查询,技术成熟,有专业公司的技术支持
可扩展性较差,无法较好支持海量数据存储,数据模型过于死板、无法较好支持Web2.0应用,事务机制影响了系统的整体性能等
RDBMS
可以支持超大规模数据存储,灵活的数据模型可以很好地支持Web2.0应用,具有强大的横向扩展能力等
缺乏数学理论基础,复杂查询性能不高,大都不能实现事务强一致性,很难实现数据完整性,技术尚不成熟,缺乏专业团队的技术支持,维护较困难等
NoSQL
关系vs非关系型
Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached
数据模型:键值对
涉及频繁读写、拥有简单的数据模型的应用/内容缓存,比如会话、配置文件、参数、购物车等/存储配置和用户数据信息的移动应用
典型应用
扩展性。灵活性好,大量写操作时性能高
无法存储结构化信息,条件查询效率低
不支持事务性支持,关联数据的关系
键值
BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS
数据模型:列族
分布式数据存储与管理
数据在地理上分布在多个数据中心的应用
容忍副本在短期不一致情况的应用程序
动态字段的应用程序
查找速度快,可扩展性强,容易进行分布式扩展,复杂性低
功能较少,不支持强事务一致性
列族
MongoDB、CouchDB、Terrastore、ThruDB、RavenDB、SisoDB、RaptorDB、CloudKit、Perservere、Jackrabbit
数据模型:键值 值(value)是版本化的文档
存储、索引并管理面向文档的数据或类似的半结构化数据(后台有大量读写操作的网站、使用JSON数据结构的应用、使用嵌套结构等非规范化数据的应用程序)
性能好(高并发),灵活性高,复杂度低,数据结构灵活提供嵌入式文档功能,将经常查询的数据存储在同一个文档中即可以根据键来构建索引,也可以根据内容构建索引
缺乏统一的查询语法
文档
Neo4J、OrientDB、InfoGrid、Infinite Graph、GraphDB
图结构:数据模型
专门用于处理具有高度相互关联关系的数据,比较适合于社交网络、模式识别、依赖分析、推荐系统以及路径寻找等问题题
灵活性高,支持复杂的图形算法,可用于构建复杂的关系图谱
复杂性高,只能支持一定的数据规模
图形
四大l类型
Consistency:一致性,任何一个读操作总是能够读到之前完成的写操作结果
Availablity:可用性,指快速获取数据,在确定的时间内返回操作结果,保证请求有响应
Tolerance of Network Partion:分区容忍性
CAP
基本可用,分布式系统部分发生问题不可用,其他部分仍可使用,允许分区失败
Basically Availble,
状态可以有一段时间不同步,具有一定滞后性
Soft-state
因果一致性
读己之所写一致性
单调读一致性
会话一致性
单调写一致性
Eventualconsistency
BASE
N——数据复制的份数,W——更新数据时需要保证写完成的节点数,R——读取数据的时候需要读取的节点数
W+R<N 弱一致性
最终一致性
三大基石
基于分布式文件存储的开源数据库系统,Web应用提供可扩展的高性能数据存储解决方案
数据结构由键值对组成,类似于JSON对象,字段值可以包含其它文档,数组及文档数组
面向文档存储,操作起来简单和容易;设置任何属性的索引实现快速排序;丰富的查询表达式;
简介
概念解析
MongoDB
Master/Slave 架构,Master运行JobTracker,Slave运行TaskTracker
函数框架
体系结构
工作流程
框架
MapReduce
HDFS HA,提供节点热备机制
HDFS Federation,管理多个命名空间
新的资源管理框架YARN
生态系统:Pig、Spark、Oozie、Tez、Kafka
框架改进
处理客户端请求
启动/监控ApplicationMaster
监控NodeManager
资源分配与调度
ResourceManager
为应用程序申请资源,并分配给内部任务
任务调度、监控与容错
ApplicationMaster
处理来自ResourceManager的命令
处理来自ApplicationMaster的命令
NodeManager
YARN
YARN框架体系
子主题
Hadoop2.0
MapReduce、Spark
批处理计算:针对大规模数据的批处理
Storm、S4、Stream、Dstream、Puma
流计算:针对流数据的实时计算
Pregel、GraphX、Giraph、Hama
图计算:针对大规模图结构数据的处理
Dremel、Hie、Cassandra、Impala
查询分析计算:大规模数据的存储管理和查询分析
大数据计算模式
如MapReduce
复杂的批量数据处理:时间跨度数十分钟到数小时
如Impala
基于历史数据的交互式查询:数十秒到数分钟
如Storm
基于实时数据流的数据处理:数百毫秒到数秒之间
大数据处理类型
IT技术设施层
数据源层
数据抽取、转换、存储和管理等服务
数据管理层
提供分布式计算、数据挖掘、统计分析等服务
数据分析层
提供数据分享平台、数据分析平台、数据租售平台等服务
数据平台层
智能交通、医疗、物流、电网等
数据应用层
大数据产业
HDFS:分布式文件系统
MaoReduce:分布式并行编程模型
YARN:资源管理和调度器
将Map和Reduce两个操作进一步拆分
Map拆分为Input、Processor、Sort、Merge、Output
Reduce拆分为Input、Shuffle、Sort、Merge、Processor、Output
DAG 作业计算框架
Tez:运行在YARN之上的下一代Hadoop查询处理框架
Hive:Hadoop上的数据仓库
HBase:Hadoop上的非关系型的分布式数据库
通过编写简单的脚本实现复杂的数据分析,不需要编写复杂的MapReduce应用程序
用户脚本自动转换为MapReduce作业
Pig:一个基于Hadoop的大规模数据分析平台,提供类似于SQL的查询语言Pig Latin
Sqoop:用于在Hadoop与传统数据库之间进行数据传递
Oozie:Hadoop上的工作流管理系统
Zookeeper:提供分布式协调一致性服务
Storm:流计算框架
Flume:一个高可用,高可靠,分布式的海量日志采集、聚合和传输系统
Ambari:Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控
Spark:类似于Hadoop MapReduce的通用并行框架
Kafka:高吞吐量的分布式发布订阅消息系统,满足在线实时处理和批量离线处理
Hadoop项目结构
基于内存计算的大数据并行计算框架,构建大型、低延迟的数据分析应用程序
使用DAG执行引擎以支持循环数据流与内存计算
支持Scala、Java、Python和R语言进行编程
完整的技术栈:SQL查询、流式计算、机器学习和图算
独立集群、云上环境可读取Cassandra、HBase、Hive等数据源
概述
Spark
小时级
复杂的批量数据处理
SparkSql
分钟级、秒级
基于历史数据的交互式查询
Spark Streaming
毫秒、秒级
基于实时数据流的数据处理
MLlib
基于历史数据的数据挖掘
GraphX
图结构数据处理
生态
Resillient Distributed Dataset ,分布式内存,高度受限的共享内存模型
RDD
Directed Acyclic Graph(有向无环图),反应RDD之间的依赖关系
DAG
运行在WorkNode的一个进程,复杂运行Task
Exceutor
用户编写的Spark应用程序
Application
运行在Executor上的工作单元
Task
一个Job包含多个RDD级作用于RDD上的操作
Job
Job的基本调度单位,一个Job会分为多组Task,每组Task被称为Stage
Stage
基本概念
可以自带Mesos或YARN
集群管理器(ClusterManager)
运行作业任务的工作节点(Worker Node)
每个应用的任务控制节点(Driver)
利用多线程执行具体的任务,减少任务的启动开销
BlockManager存储模块,将内存和磁盘共同作为存储设备,有效减少IO开销
每个工作节点上负责具体任务的执行进程(Executor)
架构设计
运行架构
数据快速持续到达,潜在大小也许无穷无尽
数据来源众多,格式复杂
数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃,要么被归档存储
注重数据整体价值,不过分关注个别数据
数据顺序颠倒,或者不完整,系统午发控制将要处理的新到达的数据元素的顺序
流数据特征
Agent:主动采集数据,并把数据推送到Collector
Collector:接受Agent数据,并实现有序、可靠、高性能转发
Store:存储Collector转发过来的数据
实时采集
实时计算
实时查询服务可以主动将实时结果推送给客户
实时查询
数据处理流程
Web服务/机器翻译/广告投放/自然语言处理/气候模拟
实时交通
应用场景
Streams:Storm将流数据Stream描述成一个无序的Tuple序列,这些Tuple序列会以分布式的方式并行地常见和处理
Spout:Storm认为每个Stream都有一个源头,并把这个源头抽象为Spout ,通常Spout会从外部数据源(队列、数据库等)读取数据,然后封装成Tuple形式,发送到Stream中。Spout是一个主动的角色,在接口内部有个nextTuple函数,Storm框架会不停的调用该函数
Bolt:Storm将Streams的状态转换过程抽象为Bolt。Bolt即可以处理Tuple,也可以将处理后的Tuple作为新的Streams发送给其他Bolt
Topology:Storm将Spouts和Bolts组成的网络抽象成Topology,它可以被提交到Storm集群执行。Topology可视为流转换图,图中节点是一个Spout或Bolt,边则表示Bolt订阅了哪个Stream。当Spout或者Bolt发送元组时,它会把元组发送到每个订阅了该Stream的Bolt上进行处理
Stream Groupings::Storm中的Stream Groupings用于告知Topology如何在两个组件间(如Spout和Bolt之间,或者不同的Bolt之间)进行Tuple的传送。每一个Spout和Bolt都可以有多个分布式任务,一个任务在什么时候、以什么方式发送Tuple就是由Stream Groupings来决定的
设计思想
MapReduce作业最终会完成计算并结束运行,而Topology将持续处理消息(直到人为终止)
对应关系
Worker :Supervisor”的后台程序,负责监听分配给它所在机器的工作,即根据Nimbus分配的任务来决定启动或停止Worker进程,一个Worker节点上同时运行若干个Worker进程
Master--worker
框架设计
Storm
流计算
表达数据之间的关联性
关联性计算时大数据计算的核心——通过获得数据的关联性,可以从噪音海量数据中抽取有用的信息
图结构数据
基于遍历算法的、实时的图数据库,如Neo4j、OrientDB、DEX和Infinite Graph
以图顶点为中心的、基于消息传递处理的并行引擎,如GoldenOrb、Giraph、Pregel和Hama,基于BSP模型实现
局部计算:每个参与的处理器都有自身的计算任务,只读取存储在本地内存中值,不同处理器的计算任务都是异步并且独立的
通讯:处理器群相互间交换数据,一方发起推送和获取操作
栅栏同步:当一个处理器遇到栅栏,会等到其他所有处理器完成它们所有计算步骤;每一次同步都是一个超步的完成和下一个超步的开始
大型图计算软件
Pregel
图计算
指将大型数据集中的数据以图形图像形式表示,并利用数据分析和开发工具发现其中未知信息处理过程
每一个数据项作为单个图元素表示,大量的数据集构成数据图像,同时将数据的各个属性值以多维数据的形式表示,可以从不同的维度观察数据,从而对数据进行更深入的观察和分析
什么是可视化
霍乱地图
南丁格尔——鸡冠花图
历程
Excel
Google Chart
D3
Visual.ly
Tableau
大数据魔镜
信息图表
Google FusionTables
Modest Maps
Leaflet
地图工具
Timetoast
Xtimeline
时间线工具
Weka
R
Gephi
分析工具
工具
全球黑客活动
互联网地图
编程语言影响力关系图
3D可视化
典型分享
数据可视化
个性化服务
日常生活
选举
政府领域
国家安全
防御网络攻击
预防犯罪
安全领域
训练球队
投拍影视作品
预测比赛结果
体育娱乐
智能电网
能源行业
客户离网分析
电信行业
餐饮O2O
餐饮行业
用户建模模块
推荐对象建模模块
UserCF:基于用户
ItemCF:基于物品
推荐算法模块
推荐系统
互联网
流行病预测
智慧医疗
生物信息学
生物医学
智能物流
菜鸟(智能物流骨干网)
物流
智能交通
环保检测
城市规划
安防领域
城市管理
高频交易
市场情绪分析
信贷风险分析
金融行业
无人驾驶
汽车行业
发现关联购买行为
客户群体细分
供应链管理
零售行业
大数据
0 条评论
回复 删除
下一页