您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据挖掘与识别 > Hadoop 大数据平台体系:马太航
YonyouSoftwareCorporationHadoop大数据平台体系UAP中心数据平台产品部马太航2013年4月20日math@yonyou.comHadoopHadoop、版本、流处理、HDFS、MapReduce、文件结构、压缩存档、API1Hive工作流程、API、模块组件、架构组件、HQL、元数据管理、CLI2Hbase模块组件、DML、DDL、ClientAPI、存储方式、性能优化3Zookeeper处理机制、API、ZookeeperShell、功能模块4ApachePig设计原理、API、关键字、综合案例、典型函数5YonyouSoftwareCorporationHadoop简介Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。Hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS。HDFS有着高容错性(fault-tolerent)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(largedataset)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streamingaccess)文件系统中的数据。下面列举hadoop主要的一些特点:1扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(PB)数据。2成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。3高效率(Efficient):通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速。4可靠性(Reliable):hadoop能自动地维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。YonyouSoftwareCorporation流处理框架S4S4(SimpleScalableStreamingSystem)是Yahoo最新发布的一个开源流计算平台,它是一个通用的、分布式的、可扩展性良好、具有分区容错能力、支持插件的分布式流计算平台,在该平台上程序员可以很方便地开发面向无界不间断流数据处理的应用,开发语言为Java。StormStorm是Twitter开源的分布式实时计算系统,Storm通过简单的API使开发者可以可靠地处理无界持续的流数据,进行实时计算,开发语言为Clojure和Java,非JVM语言可以通过stdin/stdout以JSON格式协议与Storm进行通信。Storm的应用场景很多:实时分析、在线机器学习、持续计算、分布式RPC、ETL处理,等等。StreamBaseStreamBase是一个关于复杂事件处理(CEP)、事件流处理的平台。其本身是商业应用软件,但提供了DeveloperEdition,开发语言为Java。HStreamingHStreaming构建在Hadoop之上,可以和Hadoop及其生态系统紧密结合起来提供实时流计算服务。这使得HStreaming的用户可以在同一个生态系统中分析处理大数据,开发语言为Java。YonyouSoftwareCorporation流处理框架Esper&NEsperEsper是专门进行复杂事件处理(CEP)的流处理平台,Java版本为Esper,.Net版本为NEsper。Esper&NEsper可以方便开发者快速开发部署处理大容量消息和事件的应用系统,不论是历史的还是实时的消息。KafkaKafka是Linkedin于2010年12月份开源的高吞吐、基于Pub-Sub的分布式消息系统,主要用于处理活跃的流式数据,开发语言为Scala。ScribeScribe是Facebook开源的日志收集系统,开发语言为C,通过Thrift可以支持多种常用客户端语言,在Facebook内部已经得到大量的应用。它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文件系统等)上,以便于进行集中统计分析处理。它为日志的“分布式收集,统一处理”提供了一个可扩展的,高容错的方案。Scribe通常与Hadoop结合使用,Scribe用于向HDFS中push日志,而Hadoop通过MapReduce作业进行定期处理。FlumeFlume是Cloudera提供的一个分布式、可靠的、高可用的日志收集系统,用于收集、聚合以及移动大量日志数据,开发语言为Java。Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接收方(可定制)的能力。YonyouSoftwareCorporationHadoop生态圈YonyouSoftwareCorporationHadoop生态圈数据抓取系统-Nutch海量数据怎么存,当然是用分布式文件系统-HDFS数据怎么用呢,分析,处理MapReduce框架,让你编写代码来实现对大数据的分析工作非结构化数据(日志)收集处理-fuse,webdav,chukwa,flume,Scribe数据导入到HDFS中,至此RDBSM也可以加入HDFS的狂欢了-Hiho,sqoopMapReduce太麻烦,好吧,让你用熟悉的方式来操作Hadoop里的数据–Pig,Hive,Jaql让你的数据可见-drilldown,Intellicus用高级语言管理你的任务流–oozie,CascadingHadoop当然也有自己的监控管理工具–Hue,karmasphere,eclipseplugin,cacti,ganglia数据序列化处理与任务调度–Avro,Zookeeper更多构建在Hadoop上层的服务–Mahout,ElasticmapReduceOLTP存储系统–HbaseYonyouSoftwareCorporationHadoop体系组件HadoopCommon:在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为HadoopCommonHDFS:Hadoop分佈式文件系統(DistributedFileSystem)-HDFS(HadoopDistributedFileSystem)MapReduce:并行计算框架,0.20前使用org.apache.hadoop.mapred旧接口,0.20版本开始引入org.apache.hadoop.mapreduce的新APIHBase:类似GoogleBigTable的分布式NoSQL列数据库。(HBase和Avro已经于2010年5月成为顶级Apache项目[1])Hive:数据仓库工具,由Facebook贡献。Zookeeper:分布式锁设施,提供类似GoogleChubby的功能,由Facebook贡献。Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。YonyouSoftwareCorporationHadoop版本选择ApacheHadoop和Hadoop商用衍生版,UAP这边使用CDH4版Apache官方版本:0.20.x0.23.x商用版本:ClouderaHortonWorksAmazonEMRMapRIBMHadoopOracleMicrosoftIntelEMCYonyouSoftwareCorporationHadoop版本信息说明(1)Append支持文件追加功能,如果想使用HBase,需要这个特性。(2)RAID在保证数据可靠的前提下,通过引入校验码较少数据块数目。详细链接:(3)Symlink支持HDFS文件链接,具体可参考:(4)SecurityHadoop安全,具体可参考:(5)NameNodeHA具体可参考:(6)HDFSFederation和YARNMapReduce:传统的MapReduce模型YARN:下一代MapReduce实现Corona:FaceBook下一代MapReduceYonyouSoftwareCorporationHadoop版本分支情况20100.20.2稳定0.21.0不稳定20110.20.203稳定0.20.205(1.0版本,使用中)稳定0.22.0不稳定0.23.0不稳定20120.23.X不稳定1.0.X稳定2.0.X不稳定YonyouSoftwareCorporationClouderaHadoopCloudera产品主要为CDH,ClouderaManager,ClouderaSupport。CDH是Cloudera的hadoop发行版,完全开源,比Apachehadoop在兼容性,安全性,稳定性上有增强。ClouderaManager是集群的软件分发及管理监控平台,可以在几个小时内部署好一个hadoop集群,并对集群的节点及服务进行实时监控。ClouderaSupport即是对hadoop的技术支持。cloudera的标价为每年每个节点4000美元。PS:PB数据需要500~2000处理节点,1000为例,每年费用为400万美元。CDH共有4个版本,其中,前两个已经不再更新,最近的两个,分别是CDH3(在ApacheHadoop0.20.2版本基础上演化而来的)和CDH4在ApacheHadoop2.0.0版本基础上演化而来的),分别对应Apache的Hadoop1.0和Hadoop2.0YonyouSoftwareCorporationHadoop模块信息NameNode:名字节点分布式存储Master/Slave,其中扮演Master的角色,主要存储DataNode数据节点的元信息,充当管理角色。一般NameNode单独部署,而且是单点节点,属于HDFS中的一部分。SecondaryNameNode:次名字节点不负责与DataNode节点交互,保存NameNode的快照,NameNode挂了后用它来修。DataNode:数据节点HDFS中干活的节点,NameNode和DataNode的守护进程保持通讯,一般一份数据会被切割成多分数据块存储在DataNode中,保证解决单点故障。JobTracker:工作节点Master/Slave中的Master节点,负责给TaskTracker节点分配任务,通过心跳确定TaskTracker是否还活着,如果TaskTracker宕机了,会将任务分给其他TaskTracker执行。JobTracker只能有一个可以与NameNode放在一起。TaskTracker:任务节点监督Map/Reduce干活的节点,由JobTracker分配任务YonyouSoftwareCorporationHadoop操作流程YonyouSoftwareCorporationHadoopMongoDB#!/usr/bin/envrubyrequire'mongo-hadoop'MongoHadoop.mapdo|document|{:_id=document['user']['time_zone'],:count=1}end#!/usr/bin/envrubyrequ
本文标题:Hadoop 大数据平台体系:马太航
链接地址:https://www.777doc.com/doc-3177982 .html