扣丁学堂大数据培训简述如何高效的阅读hadoop源代码

本篇文章扣丁学堂大数据培训小编给读者们分享一下如何高效的阅读hadoop源代码,对大数据开发感兴趣的小伙伴就随小编来了解一下,但愿对小伙伴们有所帮助。node

首先,必需要说,对于互联网工程师而言,无论hadoop源代码质量怎么样,是好仍是差,咱们都不得不看,别无选择,由于hadoop已逐渐成为大数据代名词,成为互联网公司的基础设施和软件,和传统的操做系统同样基础而又重要。另外,有人会问,对于只是使用hadoop的人,有没有必要学习hadoop源代码?这个取决于你我的的兴趣,追求和工做内容。linux

通常而言,hadoop职位分别内核开发工程师(修改hadoop源代码,打patch,加feature等),hadoop运维工程师(遇到hadoop服务问题,好比namenode挂了,主备切换失败,能够采起相应的措施快速解决),hadoop应用开发工程师(在hadoop基础上写一些app,好比写HQL生成报表,写一些数据挖掘算法等),对于前两个岗位,若是你是一个有追求的工程师的话,须要好好看源代码,尤为是运维工程师,不能仅仅依赖于搜索引擎和各类杂七杂八的文档,由于hadoop的不少东西,好比参数配置(hadoop中有几百个配置参数),跟hadoop版本相关,而hadoop版本迭代和发布频繁,不少文档和论坛里的帖子已经失效而没法及时更新,所以,一味的依赖这种二手资料,只会让你浪费更多时间。 这时候,最好的方式是查看源代码,找到相关的类,看一下怎么实现的,问题能够立刻解决。你能够把hadoop源代码当作一本巨大的参考手册,遇到问题,就翻到可以给你带来答案的“页”中。算法

hadoop源代码:apache

理解了相关背景后,接下来聊聊hadoop源代码质量。编程

Hadoop源代码质量绝对是开源软件中的佼佼者,从代码规范,到代码组织,再到代码实现技巧。这一点,能够与各类杂七杂八的公司本身开发的软件做对比(提一点,即便是很是有名的公司,挂在本身名下的开源软件代码质量也不高,好比facebook的presto,好比linkedin的azkaban等,提升代码质量和发动更多人关注这些软件,最好的方式是加入apache基金会,成为它的顶级项目),很容易得知。hadoop专门的基金会组织管理和运营,有一整套完善的项目管理流程。能够这么说,若是你把hadoop源代码学到精通,那么学习其余开源软件,尤为是分布式系统,绝对是小case,另外,对你本身从头写一个分布式系统也有巨大帮助。微信

hadoop源代码中包含着不少有价值的,能够借鉴和学习的宝贵经验,好比:app

(1)若是本身实现一个高效的RPC框架(hadoop本身实现了一个RPC框架,这个框架由HDFS,MAPREDUCE,YARN和HBASE公用)框架

(2)如何对单点的服务实现leader election(包括HDFS,YARN,HBase等都存在单点故障问题,均采用zookeeper实现了准备切换)运维

(3)如何实现一个分布式存储系统和分布式计算引擎分布式

(4)如何设计一个极简且抽象度高的编程API(记得MapReduce刚刚发布时,不少公司对外公布说,本身公司内部早就有了相似于mapreduce的框架,一直在用。但mapreduce成熟以后,全部公司都弃掉了本身的框架,转而采用hadoop mapreduce,主要缘由是他们的框架抽象度不高,使用起来比较麻烦。虽然如今你们使用mapreduce以为这玩意很是简单,可是这是高度抽象后去繁留简的结果,若是你本身作一个分布式计算框架,能设计出这么精简的编程模型和编程API吗)。

hadoop现状:

须要注意的是,hadoop从第一个原型开始,到如今已经有多年。目前hadoop代码庞大,学习起来愈来愈困难,这个跟linux内核发展史差很少。因为hadoop源代码是不少人贡献的,里面多多少少存在代码冗余,且个别功能点的实现比较使人费解。此外,一些hadoop公司的的出现,好比cloudera,hortonworks(已经上市),使得hadoop更新频率愈来愈快,这些公司的绝大部分工程师天天的任务就是为hadoop贡献代码,所有贡献给社区,这推动了hadoop快速发展,但同时使得hadoop学习成本愈来愈大,不少中小型公司没法找到合适的技术人员,不得不反过来向这些hadoop公司求助,给他们交比较昂贵的咨询费用。

如今每一行hadoop源代码的提交均要通过不少人的review,从代码规范到实现方式上,都会有不少人在jira(Hadoop YARN - ASF JIRA)上提出各类意见,估计要改上好几遍才可能被merge到主干上,整个流程很低效,可是这样可以使hadoop源代码保持很高的水准。

想要了解更多关于大数据方面内容的小伙伴,请关注扣丁学堂大数据培训官网、微信等平台,扣丁学堂IT职业在线学习教育有专业的大数据讲师为您指导,此外扣丁学堂老师精心推出的大数据视频教程定能让你快速掌握大数据从入门到精通开发实战技能。

相关文章
相关标签/搜索