大数据时代的数据库1云计算概念提出Hadoop的发展历史Hadoop的核心技术MapReduceHadoop核心技术数据库Hbase其它NoSQL数据库23大数据特性4V特性Volume(数据量大)Variety(种类多)Value(价值密度低,商业价值高Velocity(处理速度快)对传统数据库的挑战4512345开发人员部署代码,上传数据库结构和数据,并进行必要的测试,之后运维人员开通网站运行期间,企业需要雇佣专门人员负责服务器和网络的维护,定期备份数据等日常工作购买数据库服务器来部署后台数据库配置网站的域名等工作购买应用服务器来部署这个网站云计算所需解决的问题——假设某家企业开发一个旅游网站6云计算所需解决的问题——假设某家企业开发一个旅游网站7云计算所需解决的问题——假设某家企业开发一个旅游网站引入云计算,它可以从根本上解决这个问题,因为云计算是通过互联网将共享的硬件软件资源按需提供给使用者,所有的设备都是由云计算服务商维护,这样无论是专业的软件开发商,还是最终的客服,都可以将全部精力集中于业务领域,而无须考虑硬件维护、容灾等运维问题,无形之中也为企业节省了成本、提高了经济效益…………8何为云计算?(理解1)云计算,其实就是把所有的计算应用和信息资源都用互联网连接起来,供个人和企业用户随时访问、分享、管理和使用,相关的资源可以通过全球任何一个服务器和数据中心来提取的技术。9何为云计算?(理解2)是通过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再由多部服务器所组成的庞大系统搜索、计算分析之后将处理结果回传给用户。通过这项技术,远程的服务供应商可以在数秒之内,达成处理数以千万计甚至亿计的信息,达到和“超级电脑”同样强大性能的网络服务。10网络计算发展趋势2012云格(Gloud=Grid+Cloud)1995集群计算原理:指令层次的并行1998网格计算原理:任务并行1999对等计算原理:数据并行2007云计算原理:位层次的并行(可处理长字节)网格技术:主要解决分布在不同机构的各种信息资源的共享问题云计算:主要解决计算力和存储空间的集中共享使用问题。1112那么云计算数据库是怎样提出的呢?1、关系数据库高并发读写速度慢2、关系数据库支撑容量有限------类似Facebook、Twitter这样的SNS网站,用户每天产生海量的用户动态,每月会产生几亿条用户动态,对于关系型数据库来说,在一张数亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。3、关系数据库扩展性差4、数据日趋庞大,无论是入库和查询,都出现性能瓶颈5、用户的应用和分析结果呈整合趋势,对实时性和响应时间要求越来越高13关系数据库与Hadoop分布式系统的比较————为何云计算数据采用Hadoop分布式系统1415云计算提出——hadoop思想16云计算核心技术——hadoop子项目家族数据仓库工具,可以看成是从SQL到Map-Reduce的映射器ZooKeeper用于协调分布式系统上的各种服务,应用场景、实现Namenode自动切换Avro数据序列化工具,用于支持大批量数据交换的应用。支持二进制序列化方式,可以便捷,快速地处理大量数据Chukwa在Hadoop之上的数据采集与分析框架、主要进行日志采集和分析Pig可以看做hadoop的客户端软件,可以连接到hadoop集群进行数据分析工作17云计算核心技术——英特尔hadoop发行版组件18云计算核心技术——hadoop的发展历史2004年,Google发表论文,向全世界介绍了MapReduce。2005年初,为了支持Nutch搜索引擎项目,Nutch的开发者基于Google发布的MapReduce报告,在Nutch上开发了一个可工作的MapReduce应用。2006年1月,DougCutting加入雅虎,Yahoo!提供一个专门的团队和资源将Hadoop发展成一个可在网络上运行的系统。2007年,百度开始使用Hadoop做离线处理,目前差不多80%的Hadoop集群用作日志处理。2007年,中国移动开始在“大云”研究中使用Hadoop技术,规模超过1000台。2008年,淘宝开始投入研究基于Hadoop的系统——云梯,并将其用于处理电子商务相关数据。云梯1的总容量大概为9.3PB,包含了1100台机器,每天处理约18000道作业,扫描500TB数据。19云计算核心技术——hadoop的发展历史2008年7月,Hadoop打破1TB数据排序基准测试记录。Yahoo!的一个Hadoop集群用209秒完成1TB数据的排序,比上一年的纪录保持者保持的297秒快了将近90秒。2009年5月,Yahoo的团队使用Hadoop对1TB的数据进行排序只花了62秒时间。2010年5月,IBM提供了基于Hadoop的大数据分析软件——InfoSphereBigInsights,包括基础版和企业版。2011年8月,Cloudera公布了一项有益于合作伙伴生态系统的计划——创建一个生态系统,以便硬件供应商、软件供应商以及系统集成商可以一起探索如何使用Hadoop更好的洞察数据。2011年8月,Dell与Cloudera联合推出Hadoop解决方案——ClouderaEnterprise。20Hadoop框架云计算核心技术1、管理文件系统的命名空间记录每个文件数据块在各个Datanode上的位置和副本信息2、协调客户端对文件的访问3、记录命名空间内的改动或空间本身属性的改动4、Namenode使用事务日志记录HDFS元数据的变化。使用映像文件存储文件系统的命名空间,包括文件映射,文件属性等1、负责所在物理节点的存储管理2、一次写入,多次读取3、文件由数据块组成,典型的块大小是64MB4、数据块尽量散布道各个节点21——分布式文件系统(HDFS)/MapReduce原理云计算核心技术22云计算核心技术——MapReduce编程模型23Example:CountingWords•Map()–Inputfilename,filetext–Parsesfileandemitsword,countpairs•eg.”hello”,1•Reduce()–Sumsvaluesforthesamekeyandemitsword,TotalCount•eg.”hello”,(3527)=”hello”,1724云计算核心技术——Hbase数据库的基本概念1、HBase是一个分布式的、面向列的开源数据库,来自Google论文“Bigtable:一个结构化数据的分布式存储系统”2、HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式25——Hbase逻辑模型云计算核心技术行健时间戳列簇contents列簇auchor列簇mime“com.cnn.www”t9Anchor:cnnsi.com=“k”t8Anchor:my.look.ca=“CNN.com”t6Contents:html=“html”Mime:type=“text/html”t5Contents:html=“html”t3Contents:html=“html”1、以表的形式存放数据2、表由行与列组成,每个列属于某个列族,由行和列确定的存储单元称为元素3、每个元素保存了同一份数据的多个版本,由时间戳来标识区分26——Hbase物理模型云计算核心技术Hmaster管理元数据(表分区、管理该分区的RegionServer)RegionServer负责Region数据的存储和读取通过client读写数据Hbase的所有数据(Hlog和Hfile)均存储到HDFS上,HDFS将文件划分为64MB的block,并存储多个副本27云计算核心技术——行式数据库与列式数据库理解281、对应每次数据操作的时间,可由系统自动生成,也可以由用户显式的赋值2、Hbase支持两种数据版本回收方式:A、每个数据单元,只存储指定个数的最新版本B、保存指定时间长度的版本(例如7天)3、常见的客户端时间查询:“某个时刻起的最新数据”或“给我全部版本的数据”。云计算核心技术——Hbase特点与BigTable思想29云计算核心技术——Hbase和Oracle比较1、Hbase适合大量插入同时又有读取的情况2、Hbase的瓶颈是硬盘传输速度3、Oracle的瓶颈是硬盘寻道时间4、Hbase很适合寻找按照时间排序topn的场景30云计算核心技术——Hbase场景案列:浏览历史3132------应用之一HadoopinTelecom云计算核心技术33云计算核心技术------应用之二HadoopinSmartCity34云计算核心技术------应用之三阿里云“云梯”集群发展淘宝的搜索引擎能够对数十亿的商品数据进行实时搜索,另外还拥有自主研发的文件存储系统和缓存系统,以及Java中间件和消息中间件系统,这一切组成了一个庞大的电子商务操作系统。35云计算核心技术------应用之三阿里云“云梯”数据平台框架36云计算核心技术------应用之三百度数据仓库框架DW37云计算核心技术------数据存入和抽取每小时移动数十TB的交易数据、交互数据和流数据38全球领先的独立企业数据集成软件提供商云计算核心技术----应用五大数据是云计算的两大核心内容之一39云计算核心技术----应用五大数据是云计算的两大核心内容之一全世界权威IT咨询公司研究报告预测KB,MB,GB、TB,PB、EB、ZB、YB、BB1ZB=1.153*1018KB40一、大数据存储管理和索引查询问题二、Hadoop性能优化问题三、图数据并行计算模型和框架四、并行化机器学习和数据挖掘算法五、社会网络分析六、排名和推荐七、Web信息挖掘和检索八、媒体分析检索九、自然语言处理十、大数据可视化计算与分析云计算核心技术----数据分析发展趋势41Hadoop----发展形势42BerkeleyBDAS平台43NoSQL数据库•基础理论•CAP理论与一致性模型•数据存储模型与数据库•Key-valueDB•Column-orientedDB•Document-orientedDB•GraphDB•…44CAP理论•强一致性(Consistency)–系统在执行某操作后仍处于一致的状态。•可用性(Availability)–每一个操作能够在一定时间内返回结果,如果超时则被认为不可用。•分区容错性(Partitiontolerance)–在网络分区(被划分成孤立的区域)的情况下仍可接受请求。45/101多副本数据一致性模型•强一致性–无论更新在哪个副本上进行,之后的所有操作都能获得更新的数据。•弱一致性–用户读到某一操作对系统的更新需要一段时间•最终一致性–保证用户最终能够读到某一操作对系统的更新46/10147应用场景:内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统。优点:查找迅速缺点:数据无结构,通常只被当做字符串或二进制数据48•Java实现的开源key-value数据库•特征–数据自动冗余备份于多个结点上–数据分区存储–单点故障对整个系统透明–支持复杂数据类型的序列化–将数据项进行版本化,出现故障时最大限度保证数据的完整性49•开源项目,源代码采用了Apache2.0的使用许可•特征–自动将在线数据迁移到低延迟的存储介质的技术(内存,固态硬盘,磁盘)–可选的写操作一一异步,同步(基于复制,持久化)–多线程低锁争用–尽可能使用异步处理–自动实现重复数据删除–动态再平衡现有集群–通过把数据复制到多个集群单元和支持快速失败转移来提供系统的高可用性。5051应用场景:分布式文件系统优点:查找迅速,可扩展性强,更容易进行分布式扩展缺点:功能相对有限525354•最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与AmazonDynamo的完全分布式的架构于一身•F