云架构师进阶攻略(完整版)-5

简介: 云架构师进阶攻略(完整版)

十、基于Hadoop和Spark了解大数据平台


对于数据架构的部分,其实经历了三个过程,分别是Hadoop Map-Reduce 1.0,基于Yarn的Map-Reduce 2.0, 还有Spark。


如下图是Map-Reduce 1.0的过程。


           

Map-Reduce的过程将一个大任务,split称为多个Map Task,分散到多台机器并行处理,将处理的结果保存到本地,第二个阶段,Reduce Task将中间结果拷贝过来,将结果集中处理,取得最终结果。


在Map-Reduce 1.0的时候,跑任务的方式只有这一种,为了应对复杂的场景,将任务的调度和资源的调度分成两层。其中资源的调用由Yarn进行,Yarn不管是Map还是Reduce,只要向他请求,他就找到空闲的资源分配给他。


每个任务启动的时候,专门启动一个Application Master,管理任务的调度,他是知道Map和Reduce的。这就是Map-Reduce 2.0如下图。


           

这里Yarn相当于外包公司的老板,所有的员工都是worker,都是他的资源,外包公司的老板是不清楚接的每一个项目的。


Application Master相当于接的每个项目的项目经理,他是知道项目的具体情况的,他在执行项目的时候,如果需要员工干活,需要向外包公司老板申请。


Yarn是个通用的调度平台,能够跑Map-Reduce 2,就能跑Spark。


           

Spark也是创建Spark自己的Application Master,用于调度任务。


Spark之所以比较快,是因为前期规划做的好,不是像Map-Reduce一样,每一次分配任务和聚合任务都要写一次硬盘,而是将任务分成多个阶段,将所有在一个Map都做了的合成一个阶段,这样中间不用落盘,但是到了需要合并的地方,还是需要落盘的。


对于Hadoop和Spark的基本原理,我写了下面的文章。


通俗说基于Yarn的Map-Reduce过程

通俗说Spark


真正写Map-Reduce程序的时候,有很多的方法论,这里我总结了几个,供您参考。


大数据方法论之优化Map-Reduce过程

大数据方法论之网页消重的Map-Reduce算法

大数据方法论之PageRank的Map-Reduce计算

大数据方法论之Nutch基于Map-Reduce的爬取方法


十一、基于Lucene和ElasticSearch了解搜索引擎

           

当大数据将收集好的数据处理完毕之后,一般会保存在两个地方,一个是正向索引,可以用Hbase,Cassandra等文档存储,一个是反向索引,方便搜索,就会保存在基于Lucene的ElasticSearch里面。


对于Lucene,在职业生涯的早期,写过一个《Lucene 原理与代码分析完整版》有500多页。


对于搜索引擎的通用原理,写了下面的文章。


不是技术也能看懂搜索引擎

搜索引擎的设计(1):词典的设计

搜索引擎的设计(2):倒排表的设计上

搜索引擎的设计(3):倒排表的设计下


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
人工智能 缓存 前端开发
12233 67
人工智能 自然语言处理 安全
1174 0
Web App开发 人工智能 API
1470 1
人工智能 JavaScript 开发工具
4848 17
人工智能 Java BI
1548 1
人工智能 JavaScript 测试技术
2479 2
开发工具 Swift git
1989 6
人工智能 JavaScript 测试技术
1221 4