网站建设与优化及覆盖率方案,效果图在线,建工类培训机构,注册平台需要什么条件戳蓝字“CSDN云计算”关注我们哦#xff01;作者#xff1a;小枣君来源#xff1a;鲜枣课堂1998年9月4日#xff0c;Google公司在美国硅谷成立。正如大家所知#xff0c;它是一家做搜索引擎起家的公司。无独有偶#xff0c;一位名叫Doug Cutting的美国工程师#xff0c… 戳蓝字“CSDN云计算”关注我们哦作者小枣君来源鲜枣课堂1998年9月4日Google公司在美国硅谷成立。正如大家所知它是一家做搜索引擎起家的公司。无独有偶一位名叫Doug Cutting的美国工程师也迷上了搜索引擎。他做了一个用于文本搜索的函数库姑且理解为软件的功能组件命名为Lucene。左为Doug Cutting右为Lucene的LOGOLucene是用JAVA写成的目标是为各种中小型应用软件加入全文检索功能。因为好用而且开源代码公开非常受程序员们的欢迎。早期的时候这个项目被发布在Doug Cutting的个人网站和SourceForge一个开源软件网站。后来2001年底Lucene成为Apache软件基金会jakarta项目的一个子项目。Apache软件基金会搞IT的应该都认识2004年Doug Cutting再接再励在Lucene的基础上和Apache开源伙伴Mike Cafarella合作开发了一款可以代替当时的主流搜索的开源搜索引擎命名为Nutch。Nutch是一个建立在Lucene核心之上的网页搜索应用程序可以下载下来直接使用。它在Lucene的基础上加了网络爬虫和一些网页相关的功能目的就是从一个简单的站内检索推广到全球网络的搜索上就像Google一样。Nutch在业界的影响力比Lucene更大。大批网站采用了Nutch平台大大降低了技术门槛使低成本的普通计算机取代高价的Web服务器成为可能。甚至有一段时间在硅谷有了一股用Nutch低成本创业的潮流。随着时间的推移无论是Google还是Nutch都面临搜索对象“体积”不断增大的问题。尤其是Google作为互联网搜索引擎需要存储大量的网页并不断优化自己的搜索算法提升搜索效率。Google搜索栏在这个过程中Google确实找到了不少好办法并且无私地分享了出来。2003年Google发表了一篇技术学术论文公开介绍了自己的谷歌文件系统GFSGoogle File System。这是Google公司为了存储海量搜索数据而设计的专用文件系统。第二年也就是2004年Doug Cutting基于Google的GFS论文实现了分布式文件存储系统并将它命名为NDFSNutch Distributed File System。还是2004年Google又发表了一篇技术学术论文介绍自己的MapReduce编程模型。这个编程模型用于大规模数据集大于1TB的并行分析运算。第二年2005年Doug Cutting又基于MapReduce在Nutch搜索引擎实现了该功能。2006年当时依然很厉害的Yahoo雅虎公司招安了Doug Cutting。这里要补充说明一下雅虎招安Doug的背景2004年之前作为互联网开拓者的雅虎是使用Google搜索引擎作为自家搜索服务的。在2004年开始雅虎放弃了Google开始自己研发搜索引擎。所以。。。加盟Yahoo之后Doug Cutting将NDFS和MapReduce进行了升级改造并重新命名为HadoopNDFS也改名为HDFSHadoop Distributed File System。这个就是后来大名鼎鼎的大数据框架系统——Hadoop的由来。而Doug Cutting则被人们称为Hadoop之父。Hadoop这个名字实际上是Doug Cutting他儿子的黄色玩具大象的名字。所以Hadoop的Logo就是一只奔跑的黄色大象。我们继续往下说。还是2006年Google又发论文了。这次它们介绍了自己的BigTable。这是一种分布式数据存储系统一种用来处理海量数据的非关系型数据库。Doug Cutting当然没有放过在自己的hadoop系统里面引入了BigTable并命名为HBase。好吧反正就是紧跟Google时代步伐你出什么我学什么。所以Hadoop的核心部分基本上都有Google的影子。2008年1月Hadoop成功上位正式成为Apache基金会的顶级项目。同年2月Yahoo宣布建成了一个拥有1万个内核的Hadoop集群并将自己的搜索引擎产品部署在上面。7月Hadoop打破世界纪录成为最快排序1TB数据的系统用时209秒。此后Hadoop便进入了高速发展期直至现在。 Hadoop的核心架构 Hadoop的核心说白了就是HDFS和MapReduce。HDFS为海量数据提供了存储而MapReduce为海量数据提供了计算框架。Hadoop核心架构让我们来仔细看看它们分别是怎么工作的。首先看看HDFS。整个HDFS有三个重要角色NameNode名称节点、DataNode数据节点和Client客户机。典型的主从架构用TCP/IP通信NameNode是Master节点主节点可以看作是分布式文件系统中的管理者主要负责管理文件系统的命名空间、集群配置信息和存储块的复制等。NameNode会将文件系统的Meta-data存储在内存中这些信息主要包括了文件信息、每一个文件对应的文件块的信息和每一个文件块在DataNode的信息等。DataNode是Slave节点从节点是文件存储的基本单元它将Block存储在本地文件系统中保存了Block的Meta-data同时周期性地将所有存在的Block信息发送给NameNode。Client切分文件访问HDFS与NameNode交互获得文件位置信息与DataNode交互读取和写入数据。 还有一个Block块的概念Block是HDFS中的基本读写单元HDFS中的文件都是被切割为block块进行存储的这些块被复制到多个DataNode中块的大小通常为64MB和复制的块数量在创建文件时由Client决定。 我们来简单看看HDFS的读写流程。首先是写入流程1 用户向Client客户机提出请求。例如需要写入200MB的数据。2 Client制定计划将数据按照64MB为块进行切割所有的块都保存三份。3 Client将大文件切分成块block。4 针对第一个块Client告诉NameNode主控节点请帮助我将64MB的块复制三份。5 NameNode告诉Client三个DataNode数据节点的地址并且将它们根据到Client的距离进行了排序。6 Client把数据和清单发给第一个DataNode。7 第一个DataNode将数据复制给第二个DataNode。8 第二个DataNode将数据复制给第三个DataNode。9 如果某一个块的所有数据都已写入就会向NameNode反馈已完成。10 对第二个Block也进行相同的操作。11 所有Block都完成后关闭文件。NameNode会将数据持久化到磁盘上。读取流程1 用户向Client提出读取请求。2 Client向NameNode请求这个文件的所有信息。3 NameNode将给Client这个文件的块列表以及存储各个块的数据节点清单按照和客户端的距离排序。4 Client从距离最近的数据节点下载所需的块。注意以上只是简化的描述实际过程会更加复杂。再来看MapReduce。MapReduce其实是一种编程模型。这个模型的核心步骤主要分两部分Map映射和Reduce归约。当你向MapReduce框架提交一个计算作业时它会首先把计算作业拆分成若干个Map任务然后分配到不同的节点上去执行每一个Map任务处理输入数据中的一部分当Map任务完成后它会生成一些中间文件这些中间文件将会作为Reduce任务的输入数据。Reduce任务的主要目标就是把前面若干个Map的输出汇总到一起并输出。是不是有点晕我们来举个例子。上图是一个统计词频的任务。1 Hadoop将输入数据切成若干个分片并将每个split分割交给一个map taskMap任务处理。2 Mapping之后相当于得出这个task里面每个词以及它出现的次数。3 shuffle拖移将相同的词放在一起并对它们进行排序分成若干个分片。4 根据这些分片进行reduce归约。5 统计出reduce task的结果输出到文件。如果还是没明白的吧再举一个例子。一个老师有100份试卷要阅卷。他找来5个帮手扔给每个帮手20份试卷。帮手各自阅卷。最后帮手们将成绩汇总给老师。很简单了吧MapReduce这个框架模型极大地方便了编程人员在不会分布式并行编程的情况下将自己的程序运行在分布式系统上。哦差点忘了在MapReduce里为了完成上面这些过程需要两个角色JobTracker和TaskTracker。JobTracker用于调度和管理其它的TaskTracker。JobTracker可以运行于集群中任一台计算机上。TaskTracker 负责执行任务必须运行于 DataNode 上。 1.0版本与2.0版本 2011年11月Hadoop 1.0.0版本正式发布意味着可以用于商业化。但是1.0版本中存在一些问题1 扩展性差JobTracker负载较重成为性能瓶颈。2 可靠性差NameNode只有一个万一挂掉整个系统就会崩溃。3 仅适用MapReduce一种计算方式。4 资源管理的效率比较低。所以2012年5月Hadoop推出了 2.0版本 。2.0版本中在HDFS之上增加了YARN资源管理框架层。它是一个资源管理模块为各类应用程序提供资源管理和调度。此外2.0版本还提升了系统的安全稳定性。所以后来行业里基本上都是使用2.0版本。目前Hadoop又进一步发展到3.X版本。 Hadoop的生态圈 经过时间的累积Hadoop已经从最开始的两三个组件发展成一个拥有20多个部件的生态系统。在整个Hadoop架构中计算框架起到承上启下的作用一方面可以操作HDFS中的数据另一方面可以被封装提供Hive、Pig这样的上层组件的调用。我们简单介绍一下其中几个比较重要的组件。HBase来源于Google的BigTable是一个高可靠性、高性能、面向列、可伸缩的分布式数据库。Hive是一个数据仓库工具可以将结构化的数据文件映射为一张数据库表通过类SQL语句快速实现简单的MapReduce统计不必开发专门的MapReduce应用十分适合数据仓库的统计分析。Pig是一个基于Hadoop的大规模数据分析工具它提供的SQL-LIKE语言叫Pig Latin该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。ZooKeeper来源于Google的Chubby它主要是用来解决分布式应用中经常遇到的一些数据管理问题简化分布式应用协调及其管理的难度。AmbariHadoop管理工具可以快捷地监控、部署、管理集群。Sqoop用于在Hadoop与传统的数据库间进行数据的传递。Mahout一个可扩展的机器学习和数据挖掘库。再上一张图可能看得更直观一点 Hadoop的优点和应用 总的来看Hadoop有以下优点高可靠性这个是由它的基因决定的。它的基因来自Google。Google最擅长的事情就是“垃圾利用”。Google起家的时候就是穷买不起高端服务器所以特别喜欢在普通电脑上部署这种大型系统。虽然硬件不可靠但是系统非常可靠。高扩展性Hadoop是在可用的计算机集群间分配数据并完成计算任务的这些集群可以方便地进行扩展。说白了想变大很容易。高效性Hadoop能够在节点之间动态地移动数据并保证各个节点的动态平衡因此处理速度非常快。高容错性Hadoop能够自动保存数据的多个副本并且能够自动将失败的任务重新分配。这个其实也算是高可靠性。低成本Hadoop是开源的依赖于社区服务使用成本比较低。基于这些优点Hadoop适合应用于大数据存储和大数据分析的应用适合于服务器几千台到几万台的集群运行支持PB级的存储容量。Hadoop的应用非常广泛包括搜索、日志处理、推荐系统、数据分析、视频图像分析、数据保存等都可以使用它进行部署。目前包括Yahoo、IBM、Facebook、亚马逊、阿里巴巴、华为、百度、腾讯等公司都采用Hadoop构建自己的大数据系统。除了上述大型企业将Hadoop技术运用在自身的服务中外一些提供Hadoop解决方案的商业型公司也纷纷跟进利用自身技术对Hadoop进行优化、改进、二次开发等然后对外提供商业服务。比较知名的是Cloudera公司。它创办于2008年专业从事基于Hadoop的数据管理软件销售和服务还提供Hadoop相关的支持、咨询、培训等服务有点类似于RedHat在Linux世界中的角色。前面我们提到的Hadoop之父Doug Cutting都被这家公司聘请为首席架构师。 Hadoop和Spark 最后我再介绍一下大家关心的Spark。Spark同样是Apache软件基金会的顶级项目。它可以理解为在Hadoop基础上的一种改进。它是加州大学伯克利分校AMP实验室所开源的类Hadoop MapReduce的通用并行框架。相对比Hadoop它可以说是青出于蓝而胜于蓝。前面我们说了MapReduce是面向磁盘的。因此受限于磁盘读写性能的约束MapReduce在处理迭代计算、实时计算、交互式数据查询等方面并不高效。但是这些计算却在图计算、数据挖掘和机器学习等相关应用领域中非常常见。而Spark是面向内存的。这使得Spark能够为多个不同数据源的数据提供近乎实时的处理性能适用于需要多次操作特定数据集的应用场景。在相同的实验环境下处理相同的数据若在内存中运行那么Spark要比MapReduce快100倍。其它方面例如处理迭代运算、计算数据分析类报表、排序等Spark都比MapReduce快很多。此外Spark在易用性、通用性等方面也比Hadoop更强。所以Spark的风头已经盖过了Hadoop。 结语 以上就是小枣君关于大数据相关技术的介绍。小枣君个人觉得相比于云计算技术来说大数据的应用范围比较有限并不是所有的公司都适用也不是所有的业务场景都适用没有必要跟风追捧更不能盲目上马。対于个人来说大数据系统的架构非常庞大内容也非常复杂入门起来会比较吃力实践练习倒是门槛很低几台电脑足矣。所以如果不是特别渴望朝这个方向发展可以不必急于学习它。或者说可以先进行初步的了解后续如果真的要从事相关的工作再进行深入学习也不迟。推荐阅读5G大规模商用来临之前你必须知道的几个知识点“离开360时它只给了我一块钱”AI找Bug一键快速预测原子互换一统公链江湖的神来之笔春晚鬼畜 B 站日排行最高赵本山我的时代还没有结束PDF翻译神器再也不担心读不懂英文Paper了新闻联播也可以拿来做数据分析高晓松侃5G2019开年大讲揭示运营商的秘密1.微信群添加小编微信color_ld备注“进群姓名公司职位”即可加入【云计算学习交流群】和志同道合的朋友们共同打卡学习2.征稿投稿邮箱liudancsdn.net微信号color_ld。请备注投稿姓名公司职位。喜欢就点击“好看”吧