3.2. How to learning Hadoop/HBase

这是一篇给网友的回信。他看了我在China Hadop Summit上《小米Hbase实践》分享之后,来信咨询怎么学习Hadoop/Hbase?

从我自己的经历看, 学习Hadoop/Hbase步骤如下:

3.2.1. 论文

先看一下google的GFS/Mapreduce/BIgtable三篇论文(请看英文版)。Hadoop/Hbase都是从 google这三篇 论文来的。 三篇论文很经典,也很简练,很多重要的地方一笔带过。需要后来看书,看代码的时候,回过头来在看论文,在琢磨一遍。 前三遍看得时候可能看不是很懂,只能有一个大概的认识。不要气馁,论文和后面的实践结合,才能慢慢琢磨出作者所要表达的意思。 这三篇论文,过一段时间看一遍,都会有新的收获的

3.2.2. Hadoop/Hbase书

推荐<>, <> 介绍Hadoop/Hbase具体实现和实践的书,熟悉Hadoop/Hbase一些大的实现方法和原理。 这两本书可以先看一遍,很多不了解,打上问号,在后面实践的时候,重新回过头来看,加深理解。这两本书也是需要看很多遍的。

3.2.3. 实践

最好工作中需要使用到这些东西。看书可能很表面或者肤浅,很难看出深层次的东西,为什么这么实现而不那么实现。 从实际问题出发,去尝试解决实际问题, 从实际中学习。 这一步我觉得环境很重要,最好能到一个做这方面工作的team,一方面也许有人指点,另一方面也有人一起讨论,进步会更快一些。学的东西不 用,很快就会荒废掉的。

3.2.4. 源代码

代码层面,参与社区开发。从第三步开始需要开始关注代码实现的具体细节了,虽然大的原理都一样,但是工程实现上千差万别。最好的方 式,参与到社区开发里面。 实践中遇到,看代码,找到问题,修复,然后提交社区,和社区沟通。

3.2.5. Hadoop/Hbase 生态系统.

Hadoop现在已经是大的生态的系统了,外围有很多系统如hive, sqoop等等,了解这些系统对在公司实施Hadoop/Hbase很有帮忙。

3.2.6. Beyond Hadoop/Hbase.

在对Hadoop/Hbase很了解情况下,可以关注一些google这个体系之外的系统,比如Amazon Dynamo等,对比他们应用场景和系统设计的考虑,

前四步,比较重要的,后两步看以后发展了。