当前位置:首页 > 行业资料 > 国内外标准规范 > Hadoop---介绍
引言古代,人们用牛来拉重物。当一头牛拉不动一根圆木时,他们不曾想过培育更大更壮的牛。同样,我们也不需要尝试开发超级计算机,而应试着结合使用更多的计算机系统。-----格蕾·霍珀Hadoop—介绍大数据技术需要解决的难题什么是Hadoop及其由来Hadoop生态坏境介绍HadoopYARN基本构架Hadoop的实际应用不同Hadoop版本间的比较一、大数据技术需要解决的难题海量数据如何存储?海量数据如何处理?1.海量数据如何存储?海量数据的存储问题也不是今天才有的,很早以前就出现了,一些行业或者部门因为历史的积累,数据量也达到了一定的级别,当一台电脑无法存储这么庞大的数据时,采用的解决方案是使用NFS(网络文件系统)将数据分开存储D:\softwareE:\aa\bbF:\dd\ccE:\imagesSoftwareToolsFilmMusicItdc.com.local\publicItdc.com.local\publicSoftwareToolsFilmMusicNFS系统构架缺点:海量数据分析方面不能够充分利用多台计算机同时进行分析2.海量数据如何计算?对日志中的每一个用户的流量进行汇总就和,如下图所示:一个实际的需求场景—日志分析对于这样的一个日志文件,如果只有这么几行数据,我们一般会采用这样的处理方式:1、读取一行日志2、抽取手机号和流量字段3、累加到HashMap中4、遍历输出结果那么问题来了,如果数据量变得很大呢,比如一个日志文件里面有几个GB数据。1、如果仍然一行一行去读,那么就会因为磁盘的IO瓶颈导致效率太低,速度太慢。2、如果一次性加载到内存,那么就会因为单台计算机的内存空间有限而导致内存溢出。3、如果将中间结果全部缓存到HashMap中,那么也会因为单台计算机的内存空间有限而导致内存溢出。4、可以选择采用多线程处理,但是依然无法改变资源瓶颈的现实,因为一台计算器的CPU资源,内存资源,磁盘IO瓶颈是定,创建再多的线程也无法改变这个现实。解决思路一•优点:•简单易行缺点:•1、单台计算机的扩展空间有限,CPU、内存、磁盘再怎么扩展也是有限的,无法无限扩展。•2、成本高(高端服务器非常昂贵,几百万甚至上千万一台,一般的小公司承受不起这样高昂的成本)纵向扩展:也就是升级硬件,提高单机性能(增加内存,增强CPU、用更高性能的磁盘(如固态硬盘)),比如可以购买IBM的高端服务器。解决思路二横向扩展:用多台节点分布式集群处理(通过增加节点数量提高处理能力,这里说的节点指的就是一台计算机)核心思想:任务分摊,通过协作来实现单节点无法实现的任务。优点:1、成本相对低(可采用普通机器)2、易于线性扩展缺点:系统复杂度增加,我们要将我们的web应用部署到每一个节点上面,而多个节点协同工作时就要考虑以下几个问题1、如何调度资源2、任务如何监控3、中间结果如何调度4、系统如何容错5、如何实现众多节点间的协调分布式计算的复杂性就体现在这样的5个问题里面。Hadoop—介绍大数据技术需要解决的难题什么是Hadoop及其由来Hadoop生态坏境介绍HadoopYARN基本构架Hadoop的实际应用不同Hadoop版本间的比较二、什么是Hadoop?Hadoop是一个开源的可运行于大规模集群上的分布式文件系统和运行处理基础框架。Hadoop擅长于在廉价机器搭建的集群上进行海量数据(结构化与非结构化)的存储与离线处理。Hadoop就是一门用来处理大数据的技术,就是用来解决上述提到的分布式计算里面的5个技术难题的。Hadoop的由来Google云计算GFSMapReduceBigTableChubbyGFSHDFSMapReduceHadoopBigTableHBaseHadoop由ApacheSoftwareFoundation公司于2005年秋天作为Lucene的子项目Nutch的一部分正式引入。它受到最先由GoogleLab开发的MapReduce和GoogleFileSystem的启发。2006年3月份,MapReduce和NutchDistributedFileSystem(NDFS)分别被纳入称为Hadoop的项目中。Hadoop是最受欢迎的在Internet上对搜索关键字进行内容分类的工具,但它也可以解决许多要求极大伸缩性的问题。例如,如果您要grep一个10TB的巨型文件,会出现什么情况?在传统的系统上,这将需要很长的时间。但是Hadoop在设计时就考虑到这些问题,因此能大大提高效率。Hadoop可以做什么?案例1:我想知道过去100年中每年的最高温度分别是多少?这是一个非常典型的代表,该问题里边包含了大量的信息数据。针对于气象数据来说,全球会有非常多的数据采集点,每个采集点在24小时中会以不同的频率进行采样,并且以每年持续365天这样的过程,一直要收集100年的数据信息。然后在这100年的所有数据中,抽取出每年最高的温度值,最终生成结果。该过程会伴随着大量的数据分析工作,并且会有大量的半结构化数据作为基础研究对象。如果使用高配大型主机(Unix环境)计算,完成时间是以几十分钟或小时为单位的数量级,而通过Hadoop完成,在合理的节点和架构下,只需要“秒”级。案例3:Wal-Mart采用Hadoop来分析顾客搜寻商品的行为,即客户是通过哪些商品的关键字搜索到Wal-Mart的网站的,从而可以规划下一季度的商品促销策略。案例2:通用电气通过hadoop集群分析在市场营销活动中,外界对公司的所持看法(正面,中立看法或负面看法)Hadoop—介绍大数据技术需要解决的难题什么是Hadoop及其由来Hadoop生态坏境介绍HadoopYARN基本构架Hadoop的实际应用不同Hadoop版本间的比较三、Hadoop生态坏境介绍Ambari(安装、部署、配置和管理工具)HDFS(分布式文件系统)MapReduce(分布式计算框架)Mahout(数据挖掘库)Pig(数据流处理)Hive(数据仓库)Flume(日志收集工具)Sqoop(数据库BTL工具)Hbase(实时分布式数据库)Zookeeper(分布式协作服务)Hadoop是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点。Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YARN。右图为hadoop的生态系统:1.HDFS(Hadoop分布式文件系统)HDFS:源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。Client:切分文件;访问HDFS;与NameNode交互,获取文件位置信息;与DataNode交互,读取和写入数据。NameNode:Master节点,在hadoop1.X中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户端请求。DataNode:Slave节点,存储实际的数据,汇报存储信息给NameNode。SecondaryNameNode:辅助NameNode,分担其工作量;定期合并fsimage和fsedits,推送给NameNode;紧急情况下,可辅助恢复NameNode,但SecondaryNameNode并非NameNode的热备。ClintNameNodeSecondNameNodeDataNodeDataNodeDataNodeDataNodeDataNodeHeartbeats,balancing,replicationetcNodeswritetolocaldiskDataservingFS/namespace/metaopsNamespacebackup2.Mapreduce(分布式计算框架)ClientJobTeackerClientClientTaskTrackerMaptaskReducetaskMaptaskTaskTrackerMaptaskReducetaskMaptaskTaskTrackerMaptaskReducetaskMaptaskHeartbeatHeartbeatHeartbeat•HadoopMapReduce是googleMapReduce克隆版。•MapReduce是一种计算模型,用以进行大数据量的计算。其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。•JobTracker:Master节点,只有一个,管理所有作业,作业/任务的监控、错误处理等;将任务分解成一系列任务,并分派给TaskTracker。•TaskTracker:Slave节点,运行MapTask和ReduceTask;并与JobTracker交互,汇报任务状态。•MapTask:解析每条数据记录,传递给用户编写的map(),并执行,将输出结果写入本地磁盘(如果为map-only作业,直接写入HDFS)。•ReducerTask:从MapTask的执行结果中,远程读取输入数据,对数据进行排序,将数据按照分组传递给用户编写的reduce函数执行Mapreduce处理流程InputDeerBearRiverCarCarRiverDeerCarBearDeerBearRiverCarCarRiverDeerCarBearDeer,1Bear,1River,1Car,1Car,1River,1Deer,1Car,1Bear,1Car,1Car,1Car,1River,1River,1Deer,1Deer,1Bear,1Bear,1Bear,2Car,3Deer,2River,2Bear,2Car,3Deer,2River,2SplittingMappingShufflingReducingFinalresult3、Hive(基于Hadoop的数据仓库)ODBCJDBCCommandLineThriftServerDriver(Compiler,Optimizer,Executor)MetastoreMap/ReduceHDFSHBaseHIVEHive系统结构Hive包括元数据存储(Metastore)驱动(Driver)查询编译器(QueryCompiler)执行引擎(ExecutionEngine)服务器(HiveServer)客户端组件可扩展接口部分Hive由facebook开源,最初用于解决海量结构化的日志数据统计问题。Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。4、Hbase(分布式列存数据库)ROW#nROW#1TableSortedKey1:val1,t1Key1:val2,t2Key2:val1,t2Key2:val2,t4Keyn:valn,tnKeyA:val1,t1KeyA:val2,t2KeyB:val1,t2Key2B:val2,t4Keym:valn,tnRowkeyColumnFamily#1ColumnFamily#1nColumnFamilyRowkeyContents:anchor:Language:...enAnchor:cnnsi.com.CNN(t1)Anchor:my.look.ca,CNN.com(t1)Anchor:jaso.co.kr,jsao.gif(t1)htmlaahtml(t1)htmlbbhtml(t2)Com.cnn.(Tim
本文标题:Hadoop---介绍
链接地址:https://www.777doc.com/doc-1510795 .html