分布式计算、云计算与大数据第十一章

大数据概述

  大数据的“大”是相对而言的,是指所处理的数据规模巨大到无法通过目前主流数据库软件工具,在可以接受的时间内完成抓取、储存、管理和分析,并从中提取出人类可以理解的资讯。
  业界普遍认同大数据具有4个 V特征(数据量大Volume、变化速度快Velocity、多类型Variety与高价值Value)。简而言之,大数据可以被认为是数据量巨大且结构复杂多变的数据集合。
  第一个特征Volume是大数据的首要特征,数据体量巨大。当今世界需要进行及时处理以提取有用信息的数据数量级已经从TB级别,跃升到PB甚至EB级别。
  第二个特征Variety:数据类型繁多。大数据的挑战不仅是数据量的大,也体现在数据类型的多样化。除了前文提到的网络日志、地理位置信息等具有固定结构的数据之外,还有视频、图片等非结构化数据。
  第三个特征Velocity:处理速度快。信息的价值在于及时,超过特定时限的信息就失去了使用的价值。
  最后一个特征是Value:商业价值高,但是价值密度低。单个数据的价值很低,只有大量数据聚合起来处理才能借助历史数据预测未来走势,体现出大数据计算的价值所在。

大数据存储平台

HDFS

  HDFS(全称Hadoop Distributed File System)原是Apache开源项目Nutch的组件,现在成为是Hadoop的重要组件,它是一款具有高容错性特点的分布式文件系统,它被设计为可以部署在造价低廉的主机集群上。它将一个大文件拆分成固定大小的小数据块,分别存储在集群的各个节点上。因此HDFS可以存储超大的数据集和单个巨大的文件。这样的分布式结构能够进行不同节点的并行读取,提高了系统的吞吐率。同一个数据块存储在不同的数据节点上,保证了HDFS在节点失败时还能继续提供服务,使其具有了容错性。
  HDFS副本放置策略对于HDFS可靠性和性能至关重要。副本放置策略关系到数据的可靠性、可用性和网络带宽的利用率。对于副本放置策略的优化让HDFS在分布式文件系统中脱颖而出,这一调优是需要大量实践经验作为依托的。
  HDFS采用基于机架感知的副本放置策略,将副本存放在不同的机架上,即第一个副本放在客户本地节点上,另外两个副本随机放置在远程机架上,这样可以防止当某个机架失效时数据的丢失,如图12-2所示。在一个数据中心中往往不只有一个机架,对于大部分数据中心来说,不同机架上节点之间的通信需要经过多个交换机,其带宽比相同机架节点之间的通信带宽要小。因此,基于机架感知的副本放置策略可以在网络带宽和数据可靠性之间取得平衡。
  Apache HBase是运行于Hadoop平台上的数据库,它是可扩展的、分布式的大数据储存系统。HBase可以对大数据进行随机而实时的读取和写入操作。它的目标是在普通的机器集群中处理巨大的数据表,数据表的行数和列数都可以达到百万级别。受到Google Bigtable 思想启发,Apache开发出HBase, HBase是一个开源的、分布式的、数据多版本储存的、面向列的大数据储存平台。Google的Bigtable是运行于GFS(Google File System)上的,而HBase是运行与Apache开发的Hadoop平台上。

HBase的特性

HBase的特性包括:
1)线性和模块化的扩展性;
2)严格的读写一致性;
3)自动且可配置的数据表分片机制;
4)RegionServer之间可以进行热备份切换;
5)为MapReduce操作HBase数据表提供方便JAVA基础类;
6)易用的JAVA客户端访问API;
7)支持实时查询的数据块缓存和模糊过滤;
8)提供Trift网关和REST-ful Web服务,并支持XML,Protobuf和二进制编码;
9)可扩展的Jrubyshell;
10)支持通过Hadoop检测子系统或JMX导出检测数据到文件、Ganglia集群检测系统。

Cassandra

  Cassandra是社交网络理想的数据库,适合于实时事务处理和提供交互型数据。以Amazon的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型,P2P去中心化的存储,目前twitter和digg中都有使用。在CAP特性上(CAP即Consistnecy 一致性,Avaliability 可用性,Partition-tolerance分区容忍性),HBase选择了CP,Cassandra更倾向于AP,而在一致性上有所减弱。
  列是数据增量最底层(也就是最小)的部分。
  超级列与列的区别就是,标准列的value是一个字节数组,而超级列的value包含多个列,且超级列没有时间戳,超级列中的各个列的时间戳可以是不同的。
  列族概念和存储方式与HBase类似。
  超级列族概念上和普通列族相似,只不过它是超级列的集合
  在Cassandra中,Token是用来分区数据的关键。每个节点都有一个独一无二的Token,表明该节点分配的数据范围。节点的Token形成一个Token环,如图12-4所示。例如,使用一致性HASH进行分区时,键值对将根据一致性Hash值来判断数据应当属于哪个Token。

存储机制

  Cassandra的存储机制借鉴了Bigtable的设计,采用Memtable和SSTable的方式。
  CommitLog:和HBase的HLog一样,Cassandra在写数据之前,也需要先记录日志,称之为Commit Log,然后数据才会写入到Column Family对应的MemTable中,且MemTable中的数据是按照key排序好的。SSTable一旦完成写入,就不可变更,只能读取。下一次  Memtable需要刷新到一个新的SSTable文件中。所以对于Cassandra来说,可以认为只有顺序写,没有随机写操作。
  MenTable:MemTable是一种内存结构,它类似于HBase中的MenStore,当数据量达到块大小时,将批量flush到磁盘上,存储为SSTable。这种机制,相当于缓存写回机制(Write-back Cache),优势在于将随机IO写变成顺序IO写,降低大量的写操作对于存储系统的压力。所以我们可以认为Cassandra中只有顺序写操作,没有随机写操作。
  SSTable:SSTable是只读的,且一般情况下,一个列族会对应多个SSTable,当用户检索数据时,Cassandra使用了Bloom Filter,即通过多个hash函数将key映射到一个位图中,来快速判断这个key属于哪个SSTable。

Redis简介

  Redis是一种面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景。
     Redis是一个支持持久化的内存数据库(与Memcache类似),也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库 数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。
    Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能。

MongoDB

  MongoDB 是一个面向集合的,模式自由的文档型数据库。
   在数据库里每个聚集有一个唯一的名字,可以包含无限个文档。聚集是RDBMS中表的同义词,区别是聚集不需要进行模式定义。
面向文档存储
高效的传统存储方式:支持二进制数据及大型对象(如照片和视频)。
复制及自动故障转移
Auto-Sharding自动分片支持云级扩展性
动态查询
全索引支持
多语言支持。
易存储复杂的文件类型;
模式自由
支持完全索引,包含内部对象。

大数据计算模式

PRAM
  PRAM模型,即并行随机存取机,也称之为SIMD-SM(共享存储的单指令流多数据流)模型,是一种应用于并行计算抽象模型。PRAM模型是顺序的冯·诺伊曼存储程序模型的自然扩展,由若干具有本地存储器的处理器和一个具有无限容量的共享存储器组成,处理器由公共的时钟进行控制,以同步方式运行,
优点:
RPAM结构简单,简便易行;
    PRAM能够表达大多数并行算法
    PRAM让算法设计变得简单;让并行算法更加容易移植到不同的并行系统上;
    可以按需加入一些诸如同步和通信等功能。

缺点:PRAM是一个同步模型,其同步过程很费时的;
    模型中使用了一个全局共享存储器,且本地存储容量较小,不能很好的体现当前比较多见的分布主存多处理机的性能瓶颈;
    单一共享存储器的假定,不适合于异步分布存储的MIMD机器;
    假定每个处理器均可在单位时间内访问任何存储单元,因此要求处理机间通信无延迟、无限带宽和无开销,忽略多个处理器在访问同一存储空间的竞争问题以及处理器读写存储单元带宽有限性等实践中普遍存在的问题,这一假设显然是不现实的;
   不能很好地描述多线程技术和流水线预取技术,这两种技术当今并行体系结构应用最普遍的技术。

大数据分析处理平台

  Cloudera Impala:Impala是CDH(Cloudera Distribution with Apache Hadoop)的一个组件,是一个对大量数据并行处理(MPP-Massively Parallel Processing)的查询引擎。
  HadoopDB:HadoopDB旨在结合MapReduce的可扩展性优势和并行数据库的性能、效率优势,以管理和分析大数据。HadoopDB背后的基本思想是,连接多个单节点数据库系统 (PostgreSQL),使用 Hadoop 作为任务协调者和网络通信层;查询用 SQL 表达,但是其执行是使用 MapReduce 框架跨节点并行化的,以便将单一查询工作尽可能推送到相应的节点数据库中。

大数据研究与发展方向

数据处理的时效性保证——内存计算
  新型存储级内存 (storageclass memory, SCM) 器件设计成为新内存体系的一部分,而非作为虚拟内存交换区域的外存补充,计算不仅存在于传统的内存上,也在新型存储级内存上发生。
  电阻存储器 、铁电存储器 、相变存储器等为代表的新兴非易失性随机存储介质 技术的发展,使得传统的内存与存储分离的界限逐渐变得模糊
  新型存储介质的访问性能逐步逼近动态随机存取存储器 (dynamic random access memory, DRAM),但是其容量和单位价格却将远低于 DRAM。
  以新型非易失型存储设备为基础构建混合内存体系以加速计算的模式,称为内存计算。
对于流式数据的实时处理
  CluStream、D-Stream等框架
  在资源状态信息的实时监控和调整、资源敏感策略的构建、聚类策略的调整等方面仍需要继续研究完善。
大数据应用方面的例子
  医学领域的大数据应用
  临床决策支持系统
  医疗数据透明度
  医学图像挖掘
智能交通领域的大数据应用
  提高交通运行效率。
  提高交通安全水平。
  提供环境监测方式。
智能电网领域的大数据应用
  监测电力设备状态的数据挖掘

你可能感兴趣的:(分布式计算、云计算与大数据第十一章)