开发者学堂课程【企业运维训练营之大数据 EMR 原理与实践:视频-《E-MapReduce》】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1242/detail/18440
视频-《E-MapReduce》
内容介绍:
一、大数据应用
二、大数据的概念
三、大数据的起源与发展史
四、EMR产品介绍
五、回顾
六、下节预告
前言:大数据训练营介绍
本次训练营是由阿里云全球技术服务部联合开发的学堂共同推出的,目的是为了帮助同学从零到一的了解数据的概念和技术,以及阿里云页码的了解和使用,还会通过分享一些企业级运维的最佳实践,提升故障处理与疑难处置的能力。
本次课程一共有四门课,一次手动实验。本次的课程主要有三部分内容,第一部分是数据的应用和概念。第二部分是大数据技术的一个发展史,对数据还有大数据的出现,以及大数据的演变和发展过程有过基础的了解。第三部分会介绍阿里云E-MapReduce产品,就是后面会将E-MapReduce简称为EMR。第二讲页码组件的介绍,会介绍几款重要的开源组件,还有阿里云自研的组件的知识,并且通过实操的演示,对离线数据分析链路中使用的组件有一个全面的了解。第三讲主题是EMR集群运维与排账。会对EMR的运维功能进行深入的介绍,包括EMR管控的平台、监控和运维功能以及弹性伸缩等功能的介绍,熟悉EMR的管控平台和EMR的运维操作,清楚常见的问题应该如何进行排查
一、大数据应用
看图片感受一下数据真实的应用场景
1.实时数据大屏
第一张图是天猫双11的实时数据屏,在2002年双11实时计算的TPS峰值已经达到了41.6亿条每秒,一个普通的MYSQL数据库集群,可能平均每秒支持的update的量级也在万级左右,这张大屏的背后是需要强的实时计算能力做支撑的。
2.数据分析
第二张图是著名的啤酒与尿布的数据分析案例,全球的零售巨头沃尔玛在对消费者购物行为分析时发现男性的顾客在购买婴儿尿片时常常会搭配几瓶啤酒来犒劳自己,于是就推出了将啤酒还有尿布摆在一起的促销手段,这个举措使尿布和啤酒的销量都有了大幅的提升。现在啤酒和尿布的分析成果早已成了数据技术应用的一个经典案例。
3.搜索推荐
第三张图和第四张图是抖音和小红书,每当刷抖音的时候,都会越刷越上头,不知不觉时间过得非常快,原因是这类应用会实时的记录对某个视频或者文案的停留时间,还有包括关注、点赞、评论、转发这些行为记录,并根据这些离线的特征,或者是实时、离线进行计算,以及搭配相应的推荐算法,抓住了大家的兴趣,会推荐些感兴趣的文案或者视频,其实在生活的方方面面都在受着大数据的影响
二、大数据的概念
首先要了解大数据和大数据技术的定义。
1.大数据
大数据是指数据量规模大到没有办法透过主流的软件工具对数据内容进行数据存储和处理的数据。可以理解为数据量大到一定程度的数据。
大数据或称巨量资料,指的是所涉及的资料量规模巨大到无法透过主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。
2.大数据技术
大数据技术是指从各种各样类型的数据中快速获得有价值信息的能力。
三、大数据的起源与发展史
1.大数据起源LUCENE
只要讲大数据的历史,无法绕过Doug Cutting,在1997年底,Doug Cutting开发出了Lucene,Lucene从问世之后引发了开源社区的一个巨大的反响,程序员不仅使用它构建全文检索应用,还将Lucene集成到各种系统的软件中,除此之外还用Lucene来构建web应用。维基百科用Lucene建立了一个站内强的大搜索功能,用以检索站内数以千万条的词条。当时的IBM商业软件也采用了Lucene作为全文检索引擎。
为什么Lucene一经问世会有这的反响?Lucene与传统的这个数据库到底有什么不同?
2.举例说明关系型数据库与LUCENE
(1)关系型数据库
想要在数据库中存储诗词,需要先在数据库中创建一张数据库表,比如创建了from poems,这个表有两个字段诗的名字name,还有诗的内容content。将两首诗的诗名还有内容存储到表中。存储的敬业诗还有望庐山瀑布,假如这个时候有个需求,要查出所有诗词中带前的诗,就会使用SQL语句,select name from poems where,这个诗词是content,like”%前%”这样的查询语句在数据库中是需要便利整个content字段,也就是要将全部的内容检查一遍,发现有前的这个记录将对应的name字段的这个名输出。
(2)Lucene
Lucene跟数据库是不一样的,首先它会分词,会将诗的内容按照配置的分词策略进行分词,假如选择的是中文的单字分词,就会将每个汉字作为一个term。诗的每一个字作为一条记录存储到字段中,比如存储静夜思的时候,存储的结构是床静夜思、前静夜思,明静夜思,月静夜思,下面也是一样的,接着是存望庐山瀑布,它也是一个字一个字的,当发现前在之前存储过,就在这个词的content字段的内容中加上这个望庐山瀑布,这种存储方式也叫倒排索引,在查询前的时候,只要搜索name字段,前这个term对应的古诗词,比如静夜思、望庐山瀑布,就会直接全部搜索出来,这种查询方式要比关系型数据库的效率要高很多,但是看这个结构也会发现存储的内容也要比关系型数据库多,这个也是空间换时间,Lucene作为第一个提供全文文本搜索的开源函数库,它绝对是伟大的。
3.大数据发展史
(1)1998年,美国科学杂志发表了一篇题为《大数据科学的可视化》的文章。
大数据作为一个专用的名词正式的出现在公共的期刊上。
(2)2002年Doug Cutting和Apache的开源伙伴合作,在Lucene的基础上开发出了一款可以代替当时主流搜索引擎的Nutch。
①Nutch
Nutch是一个web搜索引擎,包括了爬虫和全文检索。Nutch win10之后在业界的影响力也是非常大的,大批的网站采用Nutch,大大的降低了技术门槛,甚至有一段时间在硅谷有了一股用Nutch创业的潮流。
②非结构化数据涌现
随着时间的推移,还有web以及网络的发展,各类非结构化的数据大量的涌现,例如Facebook的流行使得社交类的应用产生了大量的非结构化的数据,无论是Google还是Nutch都面临搜索数据不断增多的问题,尤其是Google,因为Google不管是用户的规模还是所产生的数据量都是top级别的,并且Google搜索引擎中的数据是基于爬虫,由于网页的量增加,也使得爬虫爬到的数据急剧膨胀,导致有大量的数据需要存储和计算,这个时候的Google必须设计新的数据存储和计算系统。
(3)2003年,Google发布了一篇技术学术论文,介绍了谷歌文件系统GFS。
①GFS
GFS全称是Google file system,是一个可扩展的分布式的文件系统,它运行在低价的普通的硬件上,提供容错的功能,它可以给大量的用户提供总体性能不错的服务,性能比较高的服务。
②分布式文件系统
分布式文件系统就是将数据分布式的存储到多台的服务器上,但是使用起来就和一台服务器的操作系统上执行一样。现在听到分布式还有大数据、可扩展之类的词一点也不陌生。
③Google的思路
2004年,整个互联网还是处于懵懂的时代,Google发布的论文让业界为之一振。因为那个时间段大部分的公司关注点是聚焦在单机上,在思考如何提升单机的性能,寻找更好更贵的服务器。而Google的思路是部署一个大规模的服务器集群,通过分布式的方式将海量的数据存储到这个集群上,利用集群上所有机器进行数据计算,这样Google其实不用买很多很贵的服务器,只要把普通的机器组织到一起就行。
(4)2004年Doug Cutting基于Google发布的GFS论文,在Nutch搜索引擎上实现了分布式文件存储系统,命名为NDFS
①NDFS
NDFS是Nutch Distributed file system。NDFS也是Hadoop分布式文件系统HDFS的前身,HDFS是Hadoop Distributed file system。
②HDFS的读写逻辑
在介绍之前首先要介绍两个东西,一个是name node,还有一个是data node。
name node:
name node主要作用就是管理文件系统的命名空间,主要是记录着某个文件名对应的存储的位置,就是每个文件名它对应的文件存储在哪个节点哪个位置。
data node:
data node负责管理本节点的数据
读写逻辑:
由客户端想要HTFS这个文件系统写文件时,会将文件块先拆分,就是一个文件拆分成多个块,按照设置的大小将不同的块的数据写到不同的name node的服务器上,同时文件名和存储的位置的对应关系会记记录到name node里,当有客户端要读取HDFS文件时,会将操作命令传送给name node,name node将数据块的在哪个节点的信息会返回给客户端,客户端相应的name node发起读的请求。name node将对应的数据返回给客户端
举例说明:
就像生活中可能有自行车的商家会将不同的型号的自行车放到不同的门店,将相关的信息存到一个线上的系统里,这个系统就是namenode。假如要买某一辆型号的自行车,先去这个网站上看一下想要的自行车在哪个店里,哪个店离最近,去对应的name node去读取,即去取自行车,这样的效率就会高很多。
(5)在2004年,NDFS发布的一年,谷歌又发表了一篇技术学术论文,介绍自己的分布式处理模型MapReduce
(6)2005年,Doug Cutting基于谷歌发布的论文在Nutch搜索引擎上实现了这个功能,命名为MapReduce。
①MapReduce
MapReduce的核心思想是分而制止,先分后合,将一个大的复杂的任务拆分成多个小的任务,并行处理,最终进行合并。MapReduce就是由map和reduce组成。Map的任务就是将数据进行拆分,把若干个任务,把复杂的任务分解成若干个简单的任务来并行处理。reduce的任务是对数据进行汇总。
②举例说明
Word count会将一个写有文章的文件,拆分成多份发布到不同的map。Map任务会对每一份文件,将每出现的每一个字,记一次一,比如一个hello出现一次,一个word出现一次。第二个map发现它也有一个hello出现一次,也有一个word出现一次,所有的map都在干这个工作。reduce的工作是把每一个词出现多少次统计一次,比如hello一共出现了两次记两次,word出现两次记两次。这个就是分布式处理模型map的一个原理。
(7)2006年雅虎招聘了Doug cutting,加入雅虎之后,Doug cutting将NDFS还有MapReduce进行了一个升级改造,并重新命名成了Hadoop。NDFS也改名成了HTFS,两年之后,HTFS正式的成为了Apache的一个顶级的项目。这个时候HTFS彻底的火了起来,让更多的人知道。任何的系统它都不是完美的,也不可能是通用的,并不是适用每个公司的。雅虎使用了MapReduce进行大数据计算的时候,发现开发太频繁了,太繁琐了,MapReduce太过于底层,对于普通的查询,没有人会希望写一个map函数,还有一个reduce函数,这对于熟悉关系型数据库的用户或者一些数据分析师,编写map函数还有reduce函数是一件头疼的事情。
(8)2008年开发了一个新的系统叫pig, pig是一个基于HTFS,类SQL语句的一个脚本语言,它的语言经过编译后直接会生成MapReduce程序,在系统上运行,这样就不用写MapReduce程序了,只要了解pig的语法,不用了解Java的开发也可以使用MapReduce框架进行计算。不过pig是支持类似SQL语言的脚本语言,它相比于直接编写map程序要简单的多,但是使用者还是要学习这种新的脚本语言,有很大的学习成本。
(9)2008年,Facebook为了数据分析也开发出了一个新的工具,叫做hive,hive是能直接使用SQL进行大数据计算的,它也是和pig一样,经过编译后直接生成MapReduce程序,这样就只要了解关系型数据库的开发人员或者是些数据分析师,就能直接的使用hive来进行数据分析,这个使用门槛又低又降低了,hive的出现将大数据的技术又往前推了。
到08年为止,大数据主要的技术站其实已经基本形成了,包括HDFS、MapReduce、pig、Hive。