Hadoop 3实战指南
上QQ阅读APP看书,第一时间看更新

前言

大数据作为一个不老的技术神话,依然活跃于各大公司和开源社区,其相关领域的各种工具琳琅满目,更新迭代速度非常迅速,其中Hadoop是较早流行的大数据处理工具之一,现在依然被广泛使用。

我是在硕士研究生期间接触Hadoop的,当时它刚刚流行,在许多领域获得了高度认可。可在我即将毕业时,Spark凭借其高效内存计算和可迭代计算的优势迅速赶超了Hadoop的热度。而就在大家一窝蜂地去学习Spark,并沉浸在其高效性能的时候,近几年Flink又凶猛地杀出了重围,成为当下比较火的大数据技术之一。

面对这些新兴的技术,我也曾一度迷茫,是否应该跟随潮流去学习新技术。但是我感觉自己对Hadoop的掌握还远远不够,所以就坚持了下来。随着对Hadoop的学习不断深入,在Hadoop的持续版本迭代中,我惊喜地发现它正在一统大数据底层平台,这让我看到了它的野心,看到了它登上霸主之位的希望。Hadoop提供了底层分布式存储平台HDFS和分布式资源管理平台YARN,并开放了资源管理平台,使之不断地兼容各种应用,让各种应用在YARN上呈现“百花齐放”的景象。

Hadoop 3.0已经发布一段时间了,我想研究它,并尝试在工作中将之付诸实践。然而,我发现市面上还未有相关书,故而萌生了写这本书的想法,也把它介绍给曾经和我一样迷茫的人。

因为我平时经常会写博客,把工作与学习中的知识沉淀为文字记录下来,所以在还没动笔时感觉写书应该不会太难。可当真正开始后,我才发现面临的困难有很多,除了体会到自己还不够专业,还体会到这里面包含着一份责任。书最终能够成行靠的全是自己的毅力和来自家人朋友的支持。

由于本人能力有限,而且是利用业余时间写作的,书中难免会有些笔误或者理解不到位的地方,欢迎各位指正。

本书内容

本书一共分为5章,主要对HDFS、YARN、Application on YARN和工作实战进行介绍,归纳如下。

  • 第1章简单介绍Hadoop,让刚接触Hadoop的读者对它有基本的了解。为了更好地学习Hadoop,本章专门抽出一节详细介绍了如何搭建Hadoop源码阅读环境、如何对Hadoop进行单元测试和如何断点调试源代码。
  • 第2章介绍了HDFS,它是目前使用较多的分布式文件系统。这一章介绍了NameNode的原理以及HA,针对大规模集群横向扩展的场景介绍了HDFS Federation和在HDFS 3.0中新增的特性,例如基于Router的Federation、纠删码副本策略和对象存储系统Ozone。
  • 第3章介绍了YARN,它是一个通用的资源管理平台。这一章从应用管理和资源调度这两个方面对其进行了介绍,首先针对应用管理介绍了ResourceManager的HA功能,然后针对资源调度介绍了中央调度器和分布式调度器,最后介绍了YARN 3.0中引入的一个小优化功能,即Shared Cache。
  • 第4章介绍了Application on YARN(如何在YARN平台中运行应用)。这一章以MapReduce为例介绍了如何将应用迁移到YARN平台,最后以Spark on YARN为例介绍了非Hadoop的应用是如何兼容YARN模式的。
  • 第5章给出一些工作实战指南。首先,介绍了如何搭建生产可用的Hadoop 3.0集群;接着讨论了如何将现有Hadoop 2.0集群升级到Hadoop 3.0,以及在升级过程中遇到的问题;然后说明了如何针对Hadoop进行二次开发,并参与社区,向社区贡献代码;最后,梳理了一个大数据平台应该具备哪些必备组件和具体的实现架构。

致谢

首先感谢我的妻子,她是我坚强的后盾,是她让我可以全心全意地投入到书的创作中。然后感谢我的父母,感谢他们牺牲自己的晚年时光来照顾我的这个小家。如果没有妻子和父母的理解与支持,我也不可能完成这本书。

感谢我的导师带我走入大数据的殿堂,使我能够从事相关职业;也感谢在工作中给予我帮助的同事和朋友,是他们不断地给我解答困惑,给我指明了前进的方向,使我在工作中不断成长。还要特别感谢黄鹏程先生,感谢他的引荐,使我有幸能把自己的知识分享给更多的人。

感谢王军花和王彦两位编辑,她们在书稿的审核过程中给我提了非常多宝贵的建议,并且很耐心地解答我的问题。如果没有她们的策划和敦促,我也难以顺利地完成此书。

感谢为本书做出贡献的每一个人!