您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据挖掘与识别 > 0923show大数据与hbase实践41
1大数据与hbase应用关于hadoop与hbase的介绍和开发应用周勇沂2014年10月16日2目录2大数据与HADOOP介绍1HDFS介绍2Hbase介绍3Hbase应用4331、WINDOWS进程间通信方式第一章大数据与HADOOP介绍4第一章HADOOP介绍41、大数据的背景与定义5日益信息化的时代56大数据的定义与特征•“Bigdataisdatathatexceedstheprocessingcapacityofconventionaldatabasesystems”O’ReillyRadar,“WhatIsBigData?”,January2012•所谓大数据,就是用现有的一般技术难以管理的大量数据的集合----野村综合研究所•大数据顺应大规模信息化到新阶段而诞生的•数据库革命性运动NoSQL(NoSQL=NotOnlySQL)•不同的NoSQL场景不同,可比性不高•原则:解放思想,事实求是6巨量GBTBPBEBDaily~Historical种类多WebAPPSocialNetworkEmail…半结构XMLLogClickstreamxDR…实时Real-timeNearreal-time7大数据的挑战7※一个关系型数据库的表数据量上亿时★分区★分表★分库※导致上层复杂度提高,成本倍增•IO天花板,非线性•单机计算8大数据对系统的需求★Highperformance–高并发读写的需求高并发、实时动态获取和更新数据★HugeStorage–海量数据的高效率存储和访问的需求类似SNS社会性网络服务网站,海量用户信息的高效率实时存储和查询★HighScalability&&HighAvailability–高可扩展性和高可用性的需求需要拥有快速横向扩展能力、提供7*24小时不间断服务89第一章HADOOP介绍92、HADOOP起源和特点10Hadoop的创立和演进10谷歌三大论文GFS(2003)SanjayGhemawat(美国工程院士)(GFS,MR,Bigtable)HowardGobioffShun-TakLeungmap/reduce(2004)DeanJeffrey(美国工程院士)(Adsense,pb,News,Codesearch)SanjayGhemawatBigtable(2006)FayChangDeanJeffreySanjayGhemawat...DougCutting和YahooLucene-Nutch-Hadoop11大数据主要应用技术——Hadoop可扩展:不论是存储的可扩展还是计算的可扩展都是Hadoop的设计根本。经济:框架可以运行在任何普通的PC上。可靠:分布式文件系统的备份恢复机制以及MapReduce的任务监控保证了分布式处理的可靠性。高效:分布式文件系统的高效数据交互实现以及MapReduce结合LocalData处理的模式,为高效处理海量的信息作了基础准备1112大数据主要应用技术——Hadoop•Hadoop作为新一代的架构和技术,因为有利于并行分布处理“大数据”而备受重视。•ApacheHadoop是一个用java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据的分布式计算,它可以让应用程序支持上千个节点和PB级别的数据。Hadoop是项目的总称,主要是由分布式存储(HDFS)、分布式计算(MapReduce)等组成1213Hadoop解决了什么难题?13简单地想想看,假设我们需要读一个10TB的数据集,怎么办?在传统的系统上,这需要很长时间,因为硬盘的传输速度是受限的。一个简单的办法是将数据存储在多个磁盘上,同时从多个磁盘并行读取数据,这将大大减少读取时间14Hadoop的基本概念14分布式存储HDFS文件分块自行备份分布式计算Map/Reduce函数式设计(map/reduce)15第一章HADOOP介绍153、MapReduce16Hadoop解决了什么难题?16化整为零,分片处理;本地化计算,并行IO,降低网络通信17MapReduce——映射、化简编程模型171.根据输入数据的大小和参数的设置把数据分成splits,每个split对于一个map线程。2.Split中的数据作为Map的输入,Map的输出一定在Map端。3.Map的输出到Reduce的输入的过程(shuffle过程):第一阶段:在map端完成内存-排序-写入磁盘-复制第二阶段:在reduce端完成映射到reduce端分区-合并-排序4.Reduce的输入到Reduce的输出最后排好序的key/value作为Reduce的输入,输出不一定是在reduce端。MapReduce是一种编程模型,用于大规模数据集的并行运算。Map(映射)和Reduce(化简),采用分而治之思想,先把任务分发到集群多个节点上,并行计算,然后再把计算结果合并,从而得到最终计算结果。多节点计算,所涉及的任务调度、负载均衡、容错处理等,都由MapReduce框架完成,不需要编程人员关心这些内容。18181、WINDOWS进程间通信方式第二章HDFS介绍19HDFS—分布式文件系统19•NameNode可以看作是分布式文件系统中的管理者,存储文件系统的meta-data,主要负责管理文件系统的命名空间,集群配置信息,存储块的复制。•DataNode是文件存储的基本单元。它存储文件块在本地文件系统中,保存了文件块的meta-data,同时周期性的发送所有存在的文件块的报告给NameNode。•Client就是需要获取分布式文件系统文件的应用程序。HDFS是一个高度容错性的分布式文件系统,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。20HDFS特点20★可扩展,只需添加服务器★健壮性,高度容错性,文件删除恢复机制★机架感知★数据冗余,副本机制★负载均衡★适合流式访问,一次写入,多次读取★默认块大小64MB,适合PB级以上数据的存储和处理★MapReduce分布式计算框架,利用存储节点的CPU资源21HDFS优缺点21HDFS优点:★适合大数据处理(支持GB,TB,PB级别的数据存储,支持百万规模以上的文件数量)★适合批处理(支持离线的批量数据处理,支持高吞吐率)★高容错性(以数据块存储,可以保存多个副本,容易实现负载均衡)HDFS缺点:★小文件存取(占用namenode大量内存),1百万个文件,至少300M内存★不支持并发写入(同一时刻只能有一个进程写入,不支持随机修改)★多用户写入,任意修改文件★低延时(几十毫秒),它是为高数据吞吐量设计的22HDFS—分布式文件系统22HDFS架构分析23HDFS—分布式文件系统2324HDFS—分布式文件系统24HDFS文件读取流程25HDFS—分布式文件系统25文件写入流程26261、WINDOWS进程间通信方式第二章HBASE的介绍27Hbase简介27★来源于FayChang所撰写的Google论文“Bigtable”★HBase–HadoopDatabase分布式存储系统★高可靠性★高性能★面向列★可伸缩★可在廉价PCServer上搭建28Hadoo生态环境28底层HDFS为HBase提供了可靠的文件存储MapReduce为它提供了高性能的计算Pig和Hive提供了HBase的查询功能,Hive提供的方法类似与SQL语句Sqoop提供了Hbase与关系数据库的导入导出功能Zookeeper提供了协调以及failover功能.29Hbase架构29•1商品目录就是一张大表(Bigtable),由商品编号(key)和装商品的木箱(ColumnFamily列族)组成。•2一个编号下商品(如某辆单车的零件),最好只用一种规格箱子就装完,但某些零件大小差别过大,不得不使用多种箱子(多个列族)•3此大型超市总部(HMaster)以楼层为租赁的基本单位,每层成为一个销售分区(HRegion)。此大型超市租用了好多栋分布在全球各地的购物大楼(HRegionserver),并托管了商品的存储和搬运。超市总部(HMaster)只管理到销售分区(HRegion),并记录在一张地址本上(放在内存上)•4每层楼销售分区(HRegion)都放一定范围编号的商品,如果这个范围编号的商品过多了,就会再租多一层楼来存储(分裂)30HBase架构304,购物大楼(HRegionserver)只有一个大门口负责登记人员进出(Hlog);进门后可以通往各个层楼,每个楼层就是一个销售分区(HRegion)5,关于一个销售分区(Hregion)a,每层楼根据商品木箱(列族ColumnFamily)的规格多少,分为多个专卖店(Store)b,每个专卖店(Sotre),由促销仓(放内存上的Memstore)和0个或多个普通仓(放hfile上的Sotrefile)组成31HRegionServer入库过程简介3132Hstore分流简介32Client写入-存入MemStore,一直到MemStore满-Flush成一个StoreFile,直至增长到一定阈值-出发Compact合并操作-多个StoreFile合并成一个StoreFile,同时进行版本合并和数据删除-当StoreFilesCompact后,逐步形成越来越大的StoreFile-单个StoreFile大小超过一定阈值后,触发Split操作,把当前RegionSplit成2个Region,Region会下线,新Split出的2个孩子Region会被HMaster分配到相应的HRegionServer上,使得原先1个Region的压力得以分流到2个Region上33hfile文件格式33hfile文件由6部分组成:datablock,metablock(可选),fileinfo,datablockindex,metablockindex,trailer。datablock存储了表数据,metablock存储了布隆过滤器索引数据,fileinfo存储了本文件的相关信息,index存储了datablock和metablock的索引数据,trailer存储了本文件的相关信息。34341、WINDOWS进程间通信方式第三章HBASE的应用35HBaseShell35名称命令表达式创建表create'表名称','列名称1','列名称2','列名称N'添加记录put'表名称','行名称','列名称:','值'查看记录get'表名称','行名称'查看表中的记录总数count'表名称'删除记录delete'表名','行名称','列名称'删除一张表先要屏蔽该表,才能对该表进行删除,第一步disable'表名称'第二步drop'表名称'查看所有记录scan表名称查看某个表某个列中所有数据scan表名称,['列名称:']更新记录就是重写一遍进行覆盖36Hbase编程36封装好的HbaseDAO例子importcom.etrans.lib.db.hbase.dao.TrackDaoImpl;privateGpsTrackvo=newGpsTrack();★方式一TrackDaoImpltrackDao=newTrackDaoImpl();trackDao.openTable(false,1024*1024*32);trackDao.insert(vo);//增、改为同一接口trackDao.list(startKey,endKey,selectedColSet,filter);trackDao.closeTable();trackDao=null;★方式二TrackDaoImpltrackDao=newTrackDaoImpl();trackDao.insert(vo);trackDao.list(startKey,endKey,selectedColSet,filter);trackDao=null;37Hbase编程37※TrackDaoImpl操作对象如何初始化★初始化表名StringCONST_TABLE_NAM
本文标题:0923show大数据与hbase实践41
链接地址:https://www.777doc.com/doc-23996 .html