第十一章 大数据技术与实

一、大数据概述
大 数据的4V特征
1)Volume (数据量大):大数据的首要特征是数据体量巨大,当今世界需要进行及时处理以提取有用信息的数据数量级已经从TB级别跃升到PB甚至FB级别。随着计算机深入到人类生活的各个领域,数据增长速度与日俱增,数据的基数也在不断扩大,,从前GB 已经是很大的数据量了,现在看来一台普通的计算机就能在可以按受的时间内完成GB级的数据运算。
2 ) Variety (数据类型多):大数据的挑战不仅在于数据量大,也体现在数据类型的多样化.除了网络日志、地理位置信息等具有固定结构的数据之外,还有视频、图片等非结构化数据现在,互联网上出现更多的多媒体应用,它们产生的非结构化数据占据大数据的很大比例,非
结构化数据和半结构化数据正是大数据处理的难点所在。
3 ) Velocity (处理速度快):信息的价值在于及时,超过特定时限的信息就失去了使用的价值。大数据的商业应用主要是分析大量历史数据以预测未来形势,帮助商业公司做出决策,处理时间过长会让其失去价值。
(4) Value (价值高): 大数据商业价值高,但是价值密度低。单个数据的价值很低,只有大量数据聚合起来处理才能借助历史数据预测未来走势,体现出大数据计算的价值所在。
二、大数据存储平台
要对大数据进行处理需要一个能够 存储所有数据的平台。由于计算机硬盘存储技术发展的速度远远赶不上大数据的爆炸式增长,单机存储密度有限,故分布式存储就成为一个自然的然的选择。

  1. HDFS
    HDFS ( Hadoop Distrbuttile System)原是Apache开源项目Nutch的组件,现在成为Hadoop的重要组件。它是一款具有 高容错性的公布式文件系统,可以部署在造价低廉的主机集群上。它将一个大文件拆分成固定大小的小数据块,分别存储在集群的各个结点上,因此, DFS可以存储超大的数据集和单个巨大的文件。这样的分布式结构能够进行不同结点的并行读取,提高了系统的吞吐率。同一个数据块存储在不同的数据结点上,从而保证HDFS在结点失败时还能继续提供服务,使其具有容错性。
    2 HDFS体系结构
    HDFS采用master/slave结构模型,一个HDFS集群由一个NameNode和多个DataNode组成,除此之外还可以有一个 Scondary NameNode.其中, NameNode充当master的角色。管理文件系统的名称空间以及对客户端的访问操作进行控制 Dalode无glave的角色,通常:个集群中每个结点 主机都运行一一个 DaNode进程,用F管理HDFS存储在本机|的那部分数据, Secondary NameNode主要用F对NameNode的操作进行记录,以便当NameNode崩溃时进行恢复1作。HDFS 在用户看来就像一一个类似于 Limux原生文件系统.它提供的Shell接小中的各种文件操作也类似于Linux。在内部,它把一个文件分割成许多块,这此数据块被分散存储到集群中的各个DataNode中,由NameNode来执行文件系统中文件和文件夹的打开、关闭、重命名操作。NameNode还负责各个数据块到各个DataNode的布局和映射。DataNode负责处理米自客户端的对HDFS本地数据块的读取和写入操作,还负责对数据块的生成.删除以及任NameNode的指导下创建数据块的副本。
    3.HDFS副本放置策略
    HDFS副本放置策略对HDFS的可靠性和性能至关重要。副本放置策略关系到数据的可靠性、可用性和网络带宽的利用率。对副本放置策略的优化让HDFS在分布式文件系统中脱颖而出,这一优化是以大量实践经验为基础实现的。
    HDFS采用基于机架感知的副本放置策略,将副本存放在不同的机架上,即第一个副本放在客户本地结点上,另外两个副本随机放置在园程机架上,从而防止某个机架失效时丢失数据。
    三、HBase
    1.HBase简介
    Apache HBase是受Google BigTable 思想启发而开发的、运行于Hadoop平台上的数据库,是可扩展的、分布式的大数据存储系统。HBase可以对大数据进行随机、实时的读取和写人操作。它的目标是在普通的机器集群中处理巨大的数据表,数据表的行数和列数都可以达到百万级别。HBase是一个开源的、数据多版本存储的、面向列的大数据储存平台。 Google的BigTable运行于GFS (Google File Sytem) 上,而HBse运行于Apache开发的Hadoop平台上。
    2.HBase的特性
    HBase的特性包括: ①线生和模块化的可扩展性: ②严格的读写一致性;③自动且可配置的数据表分片机制;④ Region Sever之间可以进行热备份切换;⑤为MapReduce操作HBase数据表提供Java基础类⑥易用的Java客户端访问API;⑦支持实施查询的数据块缓存和模糊过略;⑧提供Thrift网管和REST-ful Web服务;⑨可扩展的Jrubysohell;⑩支持通过Hadoop检测子系统或JMX 导出检测数据到文件、Ganglia集群检测系统。
    四、Cassandra
    1.Ccassandra简介
    Cassanra是t交网络 想的数据库,适合于实时事务处理和提供交互型数据。它以Amzaon的完全分布式的Dynamo为基础,结合了Google BigTable基于列族的数据模型。P2P 中心化的存储, 目前在Twitter和Digg中都有使用。在CAP特性上, HBase选择了一致性和外区容忍性, Cassandra更倾向于可用性和外区容忍性,而在一致性上有所减病。
    类Dynamo特性:
    1)对称的, P2P架构。
    2)无特殊结点,无单点故障。
    3)基于Gossip的分布式管理。
    4)通过分布式哈希表放置数据。
    5)可插拔的分区。
    6)可插拔的拓扑发现。
    7)可配置的放置策略。
    8)可配置的最终一致性。
    类BigTable特性:
    1)列族数据模型。
    2)可配置, 2级映射,超级行族。
  1. SSTable磁盘存储。
    4)仅支持追加方式提交日志。
  2. Memtable支持缓冲区和排序。
    6)不可修改的SSTable文件。
    7)集成Hadoop。
    四、Redis
  1. Redis简介
    Redis是种面向“键二值“天型数是的分布式NOSOL数据库系统。提点员高性您持久在储。能适应高并发的应用场景。它出现较晚,但发展迅達,自前匕被许多大的可用,如Github Redis 本质上是一个键值类型的内存数据库,很像Memcahed.整个数据率统统加载在内存当中进行操作,定期通过异步操作把数据库数据刷新到硬盘上进行保存。因为是纯内存操作,所以Redis的性能非常出色,每秒可以处理超过10万次读写操作,是已知性能最快的键-值数据库。
  2. Redis的数据类型
    可保有多种数据结枫交型、Redis并不是简单的键-值存储,实际上它是一个数据结构服务器、支持不同类型的值。也就是说,不必仅仅把字符串当作键所指向的值。下 列这些数据类型都可作为值类型:string(字符串)、list (列表)、set(集合)、sortedset (有序集合)、hash (哈希表)。string是最基本的一种数据类型,普通的键-值存储都可以归为此类。string 类型是二进制安全的,即Redis的字符串可以包含任何数据,如JPG图片或者序列化的对象。从内部实现来看,其实字符串可以看作字节数组,最大上限是1GB.
  3. Redis分布模式
    Redis支持master/slave的模式。在Redis分布模式中,master 会将数据同步到slave,而slave不会将数据同步到master。slave 启动时会连接master来同步数据。这是一个典利的公读写分离模型。我们可以利用master插人数据,利用slave提供检索服务,从而有效减馆
    个机器的并发访问数量。
    通过增加slave数据库的数量,读性能可以线性增长。为了避免master数据库的单点故路集群一般会采用两台master数据库做双机热备,所以整个集群的读和写的可用性都非常高。
    读写分离模型的缺陷在于,不管是master还是slave. 每个结点都必须保存完整的数据,在数据量很大的情况下,集群的扩展能力受限于单个结点的存储能力。对于写密集类型的应用,读写分离模型并不适合。为了解决读写分离模型的缺陷,引人了数据分片模型,即可以将每个结点看成是独立的master,然后通过业务实现数据分片。
    五、Mong DB
    1.MongoDB简介
    MongoDB是一个面向集合的、模式自由的文档型数据库。面向集仓是指数据被分组到若午集合.这些集合称作聚集( ollction)。 在数据库中,每个聚集有唯一 的名字,可以包含有限个文档。聚集是RDBMS中表的同义词,区别是聚集不需要进行模式定义。模式自由是指数据库并不需要知道将存人到聚集中的文档的任何结构信息。实际上,可以在同一个聚集中存储不同结构的文档。文档型是指存储的数据是键-值对的集合,键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档。我们把这个数据格式称作BSON ( Binary Seralied
    Document Notation)。
    2.MongoDB的特点如下:
    1)面向文档存储:类JSON数据模式,简单而强大。
    2)高效的传统存储方式:支持二进制数据及大型对象(如照片和视频)。
    3)复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主从服务器之入间的相互复制和自动故障转移。
    4)自动分片(auto-sharding) 支持云级扩展性(处于早期Alpha阶段): 自动分片功能支持冰平的数据库集群,可动态添加额外的机器。
    5)动态查询:支持丰富的查询表达式。查询指令使用JSON形式的标记,可方便地查询中文档中内嵌的对象及数组。
    6)支持全索引:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的杳询计划。
    7)支持Ruby、Pythoh、Java、c++、PHP等多种语言
    8)面向集合存储,易存储对象类型的数据:存储在集合中的文档,被存储为键值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。
    9)模式自由:存储在MongoDB数据库中的文件不需要知道它的任何结构定义。
    10)查询监视:MongoingDB包含一个监视工具,用于分析数据库的操作的性能。
    六、Impala平台
  4. Impala的原理
    mpala是CDH(Cloudera Distribution with Apache Hadoop)的一个组件,是一个对大量数据并行处理( Massively Parallel Processing, MPP)的查询引擎。Impala 是受到Google的Dremel原理的启发而开发出来的,除了Dremel的全部功能之外,它提供了Dremel 不具备的Jon功能,可以说是Dremel的超集。Impala 与Hive都是构建在Hadop之上的数据查询工具,适用面各有侧重。但从客户端使用来看,Impala 与Hive有很多共同之处。如数据长元数据ODBCIDBC驱动. SQL语法、灵活的文件格式、存储资源池等。
    七、HadoopDB平台
    HadoopDB是由美国耶鲁大学计算机科学教授Daniel J. Abadi及其团队推出开源并行数据库。HadoopDB 是- .个MapReduce和传统关系数据库的结合方案,以充分利用RDBMS的性能和Hadoop的容错、分布特性。它采用了许多不同的开源组件,包括开源数据库PostgresOL.Apache Hadoop技术和Hive等。
    1.HadoopDB原理任务
    HadoopDB旨在结合MapReduce的可扩展性优势和并行数据库的性能、效率优势.以管理和分析大数据。HadoopDB 的基本思想是,连接多个单结点数据库系统( PostgreSQL).使用、Hadoop作为任务协调者和网络通信层;查询用SQL表达,但是其执行是使用MapReduce框架
    跨结点并行化的,以便将单一查 询工作尽可能推送到相应的结点数据库中。因为集两种技术的优势于一身,HadoopDB可以获MapReduce等大规模并行数据基础设施的容错性。在这些基础设施中,服务器故障对整个网络的影响非常小。HadoopDB可以执行复杂的分析,速度几乎与已有的商用并行数据库一样快。
    2.HaoopDB的优缺点
    HadoopDB的优点如下::
    1)结合Hive对SQL强大的支持并直接生成Map Reduce任务,不需要再手动编写Map Reduce 程序。
    2)利用关系数据库查询数据利用了其结点的性能优势。
    3)可以利用Haoop具有的高容错性、高可用性以及对于高通量计算的性能优越性。
    HadoopDB的缺点如下:
    1)如果不想手动编写Map Reduce程序,则查询的SQL语句的数据不能来源于多张表,因为目前只相当于一个数据库额多个分块并行查询,所以不能处理多分块的数据关系。
    2)其数据预处理代价过高。数据需要进行两次分解和一-次数据库加载操作后才能使用
    3)将查询推向数据库层只是少数情况,大多数情况下查询仍由Hive完成数据仓库查询
    往往涉及多表连接,由于连接的复杂性,难以做到在保持连接数据局部性的前提下将参与连接
    的多张表按照某种模式划分。
    4)维护代价过高,不仅要维护Hadoop系统,还要维护每个数据库结点。
    5)自前尚不支持数据的动态划分,需要手动-次划分好。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值