版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大数据技术交流目录1.大数据技术介绍2.Hadoop(HDFS,MapReduce)介绍3.Hadoop的最新发展7.各技术适用的场合8.讨论什么是大数据?大数据指的是海量无法通过传统方式管理的数据。BigData作为一个专有名词成为热点,主要应归功于在的移动设备、RFID、无线传感器每分每秒都在产生数据,数以亿计用户的互联网服务时时刻刻在产生巨量的交互……求,传统的常规技术手段根本无法应付。体量Volume多样性Variety价值密度Value非结构化数据的超大规模和增长总数据量的80~90%比结构化数据增长快体量Volume多样性Variety价值密度Value非结构化数据的超大规模和增长总数据量的80~90%比结构化数据增长快10倍到50倍是传统数据仓库的10倍到50倍大数据的异构和多样性很多不同形式(文本、图像、视频、机器数据无模式或者模式不明显不连贯的语法或句义大量的不相关信息对未来趋势与模式的可预测分析深度复杂分析(机器学习、人工智能Vs传统商务智能(咨询、报告等)速度Velocity速度Velocity实时分析数据输入、处理与丢弃立竿见影而非事后见效大数据技术分布式缓存、基于MPP的分布式数据库、分布式文件系分布式缓存、基于MPP的分布式数据库、分布式文件系统、各种NoSQL分布式存储方案,内存数据库等。存储流计算MapReduce,处理HIVE,pig,R,mahout等查询统计,数据挖掘技术应用大数据的存储采用了一批新技术,主要包括分布式缓存、基于MPP的分布式数据库、分布式文件系统、各种NoSQL储方案等。分布式数据库与传统数据库对比大规模并行处理MPP(MassivelyParallelProcessing)硬件Hadoop和大数据分析的存储设备。这些供应商包括EMCHadoop解决方案,例如GreenplumHDDataComputingAppliance。甲骨文正在考虑进一步深化Exadata系列设备,提供计算能力以及高速存储。最后一个存储选择是云形式的存储,Cloudera、微软、Amazon和很多横向可扩展存储开放性其他供应商都在提供基于云的大数据解决方案,这些解决方案能够提供处理能力、存储和支持。横向可扩展存储开放性所需的硬件和成本那么,我们又需要多少的硬件呢?估计Hadoop所需的硬件有点不一样,这取决于你是在问哪家厂商。Cloudera的清单详细地列出了Hadoop的典型从属节点应该有怎样的硬件配置:中档处理器4GB至32GB内存式交换机专用的交换基础设施,以避免Hadoop拥塞网络每个机器4至12个驱动器,非RAID配置方式Hadoop方案(例:intel) HPVertica的数据仓库系统解决方案基于列存储和MPP进技术平均性能提高50x-1000x倍高可扩展性(TBs~PBs)节省高至90%的存储空间解决方案高性能运行于电信级硬件快速和灵活部署ClouderaCDH4Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(largedataset)的应用程序。子项目作用ZooKeeper为分布式提供高一致性服务Avro序列化,提高分布式传输效率HBase分布式数据库Hive提供类似oracle的数据添加,查询,修改,删除方法。Mahout提供一些可扩展的机器学习领域经典算法的实现Pig一种用于探索大型数据集的脚本语言目录1.大数据技术介绍2.Hadoop(HDFS,MapReduce)介绍3.Hadoop的最新发展7.各技术适用的场合8.讨论HadoopApache用户可以在不了解分布式底层细节的情况下,开发分布式 Hadoop是项目的总称,主要是由分布式存储(HDFS)分布式计算(MapReduce) Hadoop程序目前只能运行在Linux系统上,window需要安装其他插件,安装过程见《hadoop安装说明.docx》。Hadoop的设计根本。经济:框架可以运行在任何普通的PC上。可靠:分布式文件系统的备份恢复机制以及MapReduce务监控保证了分布式处理的可靠性。(元数据磁盘错误,心跳测试,副本数,快照(目前还没实现))MapReduce结合LocalData处理的模式,为高效处理海量的信息作了基础准备。Hadoop生态系统HDFS:为以流式数据访问模式存储超大文件而设计的文件系统。超大文件指的是几百MB,几百GB,几百TB,甚至几百PB流式数据访问HDFS建立的思想是:一次写入、多次读取模式是最高效的。商用硬件hadoop不需要运行在昂贵并且高可靠的硬件上。低延迟数据访问HDFS是为了达到高数据吞吐量而优化的,这是以延迟为代价的,对于低延迟访问,可以用Hbase(hadoop的子项目)。大量的小文件多用户写入,任意修改Hdfs集群框架NameNode记录着每个文件的元数据。每个文件在那个块中,每个数据节点包含哪些块。(不储存原始文件)DataNode是文件的工作者,它们存储文件并提供定位块的服务,并且定时向名称节点发送它们的存储块的列表。(储存原始文件)重要参数dfs.replication.min参数。最小为1,表示每个块在HDFS中的副本个数。Hdfs集群框架文件写入:Client向NameNode发起文件写入的请求。 NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。 Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。文件读取:Client向NameNode发起文件读取的请求。NameNode返回文件存储的DataNode的信息。Client读取文件信息。 Block的放置:默认不配置。一个Block会有三份备份,一份放在NameNode指定的DataNode,另一份放在与指定DataNode非同一Rack上的DataNode,最后一份放在与指定DataNode同一Rack上的DataNode上。备份无非就是为了数据安全,考虑同一Rack的失败情况以及不同Rack之间数据拷贝性能问题就采用这种配置方式。心跳检测DataNode的健康状况,如果发现问题就采取数据备份的方式来保证数据的安全性。数据复制(场景为DataNode失败、需要平衡DataNode的存储利用率和需要平衡DataNode数据交互压力等情况):这里先说一下,使用HDFS的balancer命令,可以配置一个Threshold来平衡每一个DataNode磁盘利用率。例如设置了Threshold为10%,那么执行balancer命令的时候,首先统计所有DataNode的磁盘利用率的均值,然后判断如果某一个DataNode的磁盘利用率超过这个均值Threshold以上,那么将会把这个DataNode的block转移到磁盘利用率低的DataNode,这对于新节点的加入来说十分有用。 Writable接口序列化:指的是将结构化对象转换为字节流以便网络进行传输或者写入存储的过程。反序列化:指的是将字节流转为一系列结构化对象的过程。(java定义的序列化和反序列化工具不够紧凑,高效)在hadoop中,常规JAVA数据类型是不能表示Hdfs的数据类型的,例如hdfs中的字符串不是string类表示,而是Text类,这些数据类型都必须实现一个writableWritable是Hadoop的核心(MapReduce程序使用他来序列化键/值对):voidwrite(DataOutputout)throwsIOException;voidreadFields(DataInputin)throwsIOException;分别实现对数据的序列化和反序列化。 1.对Java中的int型进行封装那么就是hadoop中的IntWritable类在写程序时可以把IntWritable可以看着是int现了WritableComparableWritableComparableWritable、parable接口的子接口。2.Writable类对所有的Java基本类型进行封装:如:boolean->BooleanWritable ; ByteByteWritable3.我们可以自已实现Writable类。核心:hadoop有自己一套的I/O机制。I/O类都必须实现Writable接口。MapReduceMap/Reduce是一个编程模型(programmingmodel),是一个用于处理和生成大规模数据集(processingandgeneratinglargedatasets)的相关的实现。用户定义一个map函数来处理一个key/value对以生成一批中间的key/value对,再定义一个reduce函数将所有这些中间的有着相同key的values合并起来。很多现实世界中的任务都可用这个模型来表达。MapReduce程序1:MapReduce程序客户端JVM
3:copyJobrescouce
2:getnewjobIDJobClient4:submitjob6:retrieveJobClientInputsplits
7:returnstask
5:initializejobJobTrackerJobtracker节点JobTrackerHDFS
8:retrievejobresources
子JVM10:run子JVM10:runMapTask或者ReduceTaskChildTaskTracker客户端: 提交MapReduce作业,即一个job。jobTracker:协调作业的运行。taskTracker:作业划分后的任务(一个job对应多个task,一个task对应一个或者多个MapReduce线程)。
Tasktracker节点1根据输入数据的大小和参数的设置把数据分成splits,每个split对于一个map线程。2Split中的数据作为MapMap的输出一定在Map端。3Map的输出到Reduce的输入的过程(shuffle过程):第一阶段:在map端完成内存->排序->写入磁盘->复制分区->排序->分区合并->合并后分区->复制第二阶段:在reduce端完成映射到reduce端分区->合并->排序4Reduce的输入到Reduce的输出最后排好序的key/value作为Reduce的输入,输出不一定是在reduce端。 MapReduceHadoop程序的体现。框架极其简单:首先是对MapReduce程序运行前的参数配置,然后编写Map类(实现Map方法),最后是Reduce类(实现Reduce方法)。MapReduce程序的每个细节都与设置的参数有很大的关系,参数设置的好,程序的效率肯定得到提高。Map方法:Map(k1,v1)->list(k2,v2),并行应用于每一个输入的数据集,每一次调用都会产生一个(k2,v2)Reduce方法:Reduce(k2,list(v2))list(k3,v3)。收集map端输出队列list(k2,v2)中有相同key的数据对,把它们聚集list(k3,v3)。Hadoop应用案例谁在用hadoopYahooFacebookAmazonEbayHuluIBMLinkedInLast.fmAlibabaBaidu中国移动研究院……目录2.Hadoop(HDFS,MapReduce)介绍3.Hadoop的最新发展7.各技术适用的场合8.讨论Hadoop已经过时了吗?Google后Hadoop时代的新“三驾马车”——Caffeine、Pregel、Dremel在2010年,Google搜索引擎发生了重大变革。Google“Caffeine”(bigtable)。Pregel主要绘制大量网上信息之间关系的“图形数据库”DremelGoogle提交的文件显示你可以在几秒的时间处理PB级的数据查询。DremelDremel做到了“不可能完成的任务”,Dremel量的数据分析于对数据的深入挖掘进行有机的结合。Dremel所处理的数据规模的速度实在令人印象深刻,你可以舒适的探索数据。在Dremel出现之前还没有类似的系统可以做的像Dremel这样出色。Drill项目Cloudera公司的两个新项目:Impala和Trevni,将有助在2013年实现Hadoop实时查询。 Impala是开版的Dremel(Dremel是Google大数据查询解决方案),预计明年第一季度发布Impala的首个beta版。Impala允许你在Hadoop的HDFS、Hbase和Hive之上运行实时查询。不必迁移。更多Hadoop子项目HBaseHBase是ApacheHadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就可以看到这些这些数据,还可以通过Map/Reduce的框架(算法)对HBase进行操作。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。所谓非结构化数据存储就是说HBase是基于列的而不是基于行的模式,这样方面读写你的大数据内容。HBase是介于MapEntry(key&value)和DBRow之间的一种数据存储方式。就点有点类似于现在流行的Memcache,但不仅仅是简单的一个key对应一个value,你很可能需要存储很可能需要存储多个属性的数据结构,但没有传统数据库表中那么多的关联关系,这就是所谓的松散数据。HiveHiveHadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和Hadoop中的大规模数据的机制。HiveSQLQL,SQL的用户查询数据。同时,这个语MapReduce开发者的开发自定义mapperreducermapperreducer无法完成的复杂的分析工作。Hive和数据库的比较查询语言HQLSQL数据存储位置HDFSRawDevice或者LocalFS数据格式用户定义系统决定数据更新支持不支持索引无有执行MapRedcueExecutor执行延迟高低可扩展性高低数据规模大小Mahout介绍ApacheMahout是ApacheSoftwareFoundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用Mahout的最近版本中还加入了对ApacheHadoop的支持,使这些算法可以更高效的运行在云计算环境中YOURSITEHEREpigHDFS和MapReduce之上的数据流处理语言,它将数据流处理翻译成多个map和reduce函数,提供更高层次的抽象将程序员从具体的编程中解放出来。Pig不适合所有的数据处理任务,和MapReduce一样,它是为数据批处理而设计的。如果只想查询大数据集中的一小部分数据,pig表现不会很好,因为它要扫描整个数据集或绝大部分。pigPig包括两部分:用于描述数据流的语言,称为PigLatin;和用于运行PigLatin程序的执行环境。PigLatin程序有一系列的operation和组成。每个操作或变换对输入进行数据处理,然后产生输出结果。这些操作整体上描述了一个数据流。Pig内部,这些变换操作被转换成一系列的MapReduce作业。Pig和数据库的比较:1)Pig是数据流编程语言,而SQL是一种描述型编程语言。Pig是相对于输入的一步步操作,其中每一步都是对数据的一个简单的变换;而SQL语句是一个约束的集合,这些约束结合在一起定义了输出。Pig更像RDBMS中的查询规划器。2)RDBMS把数据存储在严格定义了模式的表内,但pig对数据的要求更宽松,可以在运行时定义模式,而且是可选的。3)pig对复杂、嵌套数据结构的支持更强;4)Pig不支持事务和索引,也不支持随机读和几十毫秒级别的查询,它是针对数据批量处理的。5)Hive是介于Pig和RDBMS之间的系统。Hive以HDFS为存储,但是查询语言是基于SQL的,而且Hive要求所有数据必须存储在表中,表必须有模式,而模式由Hive管理。但Hive允许为预先存在HDFS中的数据关联一个模式,因此数据加载步骤是可选的。Hadoop适用场景适合Hadoop的应用场景:【1】日志分析【2】排序【3】搜索引擎,搜索关键字进行内容分类,创建索引【4】广告计算,广告优化、分析,点击流分析,链接分析【5】大规模图像转换【6】搜索引擎,创建索引【7】数据分析,数据统计,过滤,查询【8】机器学习,数据挖掘,适合于海量数据文件的批处理任务。目录1.大数据技术介绍2.Hadoop(HDFS,MapReduce)介绍3.Hadoop的最新发展7.各技术适用的场合8.讨论MapReduceHold不住?对于实时性要求很高的应用,尽管MapReduce作了实时性改进,但仍很难稳定地满足应用需求。因为Hadoop为批处理作了高度优化,MapReduce系统典型地通过调度批量任务来操作静态数据;而流式计算的典型范式之一是不确定数据速率的事件流流入系统,系统处理能力必须与事件流量匹配,或者通过近似算法等方法优雅降级,通常称为负载分流(load-shedding)。当然,除了负载分流,流式计算的容错处理等机制也和批处理计算不尽相同。流计算(StreamComputing)Hadoop(大数据分析领域无可争辩的王者)专注于批处理。这种模型对许多情形(比如为网页建立索引)态的来源的实时信息。为了解决这个问题,就得借助NathanMarzStorm(Twitter中称BackType)。StormTwitter1.4亿条推文(tweet),那么就很容易看到此技术的巨大用途。Storm与HadoopStorm方式:Hadoop在本质上是一个批处理系统。数据被引入Hadoop(HDFS并分发到各个节点进行处HDFS用。Storm支持创建拓扑结构来转换没有终点的数据流。不Hadoop理到达的数据。Storm模型Storm实现了一种数据流模型,其中数据持续地流经一个转换实体网络。一个数据流的抽象称为一个流,这是一个无限的元组序列。元组就像一种使用一些附加的序列化代码来表示标准数据类型(比如整数、浮点和字节数组)ID定义,这ID(sink的拓扑结构。流起源于喷嘴Storm拓扑结构中。Storm实现了一种数据流模型,其中数据持续地流经一个转换实体网络一个数据流的抽象称为一个流,这是一个无限的元组序列。元组就像一种使用一些附加的序列化代码来表示标准数据类型(比如整数、浮点和字节数组)或用户定义类型的结构。流起源于喷嘴,喷嘴将数据从外部Storm拓扑结构中。接收器(体)称为螺栓StormMapReduceMap功能(令牌化一个流的各个单词)。“map”螺栓的流然后流入一个实现Reduce功能的螺栓中(以将单词聚合到总数中)。流计算产品:Yahoo的S4:S4是一个通用的、分布式的、可扩展的、分区容错的、可插拔的流式系统,Yahoo!开发S4系统,主要是为了解决:搜索广告的展现、处理用户的点击反馈。Twitter的stormTwitter的storm:Storm是一个分布式的、容错的实时计算系统Storm用途:可用于处理消息和更新数据库(流处理),在数据流上进行持续查询,并以流的形式返回结果到客户端(持续计算),并行化一个类似实时查询的热点查询(分布式的RPC)。3.streamBase Items\ProjectsYahoo!s4Items\ProjectsYahoo!s4TwitterStormApachelicense2.0EclipsePublicLicense1.0协议开发语言JavaClojure,Java,Clojure编写了核心代码结构去中心化的对等结构有中心节点nimbus,但非关键通信可插拔的通讯层,目前是基于UDP的实现基于facebook开源的thrift框架事件/Stream<K,A>序列,用户可自定义事件类提供Tuple类,用户不可自定义事件类,但是可以命名field和注册序列化器处理单元ProcessingElements,内置PE处理Bolt,没有内置任务,提供IBasicBolt处理count,join和aggregate等常见任务自动ack第三方交互提供API,ClientAdapter/Driver,第三方客户端输入或者输出事件定义Spout用于产生Stream,没有标准输出API持久化提供PersistAPI规范,可根据频率或者次数做持久化无特定API,用户可自行选择处理可靠处理无,可能会丢失事件提供对事件处理的可靠保证(可选)多语言支持暂时只支持Java多语言支持良好,本身支持Java,Clojure,其他非JVM语言通过thrift和进程间通讯Failover部分支持,数据无法failover部分支持,数据同样无法failoverLoadBalance不支持不支持并行处理取决于节点数目,不可调节可配置worker和task数目,storm会尽量将worker和task均匀分布动态增删节点不支持支持动态部署不支持支持web管理不支持支持代码成熟度半成品成熟活跃度低活跃编程编程+XML配置纯编程目录1.大数据技术介绍2.Hadoop(HDFS,MapReduce)介绍3.Hadoop的最新发展7.各技术适用的场合8.讨论内存数据库:大数据时代数据管理新宠速度要快很多,一般都在10倍以上。内存数据库的最大特点是其“主拷贝”或“工作版本”与实时内存数据库的内存拷贝打交道。主流内存数据库产品1TimesTen OracleTimesTen是Oracle从TimesTen公司收购的一个内存优化的关系数据库,它为应用程序提供了实时企业和行业(例如电信、资本市场和国防)响应性和非常高的吞吐量。OracleTimesTen可作为高速缓存或嵌入式数据库被部署在应用程序层中,它利用SQL接口对完全位于物理内存中的数据存储区进行操作。SolidDB IBMSolidDB是一款数据管理平台,该平台将基于及强大的数据复制功能紧密地融为一体。SolidDB集基理速度并在同一数据库内最有效地利用系统资源。SolidDB管理平台的设计可以无缝融合到需要高速、灵盘上,使用非常灵活,而且具备完善的数据保护机制。主流内存数据库产品2 eXtremeDB实时数据库是McObject公司的一款特别为实时与50K到130K的开销,速度达到微秒级。eXtremeDB完全驻留在主内存中,不使用文件系统(包括内存盘)。eXtremeDB采用了新的磁盘融合技术,将内存拓展到磁盘,将磁盘当做虚拟内存来用,实时性能保持微秒级的同时,数据管理量在32BIT下能达到20G。 Altibase是一个在事务优先的环境中提供高性能和高可用性的软件解决方案。它提供高性能、容错能力和事务管理能力,特别适合通信、网上银行、证券交易、实时应用和嵌入式系统领域。Altibase能够最大限度地发挥数据库服务系统的潜力,增强数据服务器的处理能力。Altibase支持客户端/服务器架构或嵌入式架构。其中客户端/服务器架构非
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家纺导购专业知识培训课件
- 酒店物业管理服务合同三篇
- 社团活动对学生发展的影响计划
- 秋季学期学生学习成果展示计划
- 促肝细胞生长素相关项目投资计划书
- 前台文员的个人发展规划计划
- 销售心理学与客户洞察培训
- 张紧装置相关项目投资计划书范本
- 输尿管癌的护理查房
- 脑卒中并发吞咽障碍个案护理
- 手术器械采购投标方案(技术标)
- MSOP(测量标准作业规范)测量SOP
- 中考物理复习交流
- 拉运污水泄漏应急预案
- 八年级历史上册论述题汇总
- 资产评估学教程(第八版)习题及答案 乔志敏
- 体质健康成绩测试全自动化计算模板
- 机械制图习题集-附带答案
- 组织行为学马工程题库
- 小学英语复习讲座课件
- 2023年中级经济师考试真题及答案完整版
评论
0/150
提交评论