引言
当前,越来越多的同学进入大数据行业,有的是底层的技术,有的是工程,有的是算法,有的是业务。每个产品、都需要工程化的实现,以前,工程师都是操练着java/python/c等各种语言操纵中各类的软件,比如jquery,spring、mysql,实现产品的业务逻辑。在大数据时代,要想个性化实现业务的需求,还是得操纵各类的大数据软件,如:hadoop、hive、spark、hbase、jstorm等。笔者(阿里封神)混迹Hadoop圈子多年,经历了云梯1、ODPS等项目,目前在负责阿里云的HBase产品。在这,笔者尽可能梳理下,本文是围绕hadoophbase的。对于算法、机器学习是另一个范畴,本篇不涉及,不过从事机器学习算法的研发,能力最好在中级之上。
要想成为专家,并未一朝一夕,需要自己在业余时间花费较多的时间,我们一起加油!
初级
开始接触hadoop,最好还是有语言工程等相关的基础。如果工程能力、思维能力比较强,其实学习起来很快的。
- 自己直接写一些mapreduce、spark相关的代码去解决一些业务问题
- 熟悉hadoop的基本理论知识
- 多看看官方的文档
- 知晓大体的hadoop体系架构,每个角色能解决的问题
- 最好能体系的看下《Hadoop权威指南》
中级
这个阶段,基本就是想进一步了解hadoop本身的
- 前提开发能力较强,比如:java能力
- 熟悉ETL/流失计算/图计算/机器学习各种原理
- 看一些社区hadoop的代码,出现问题能直接看源码解决
- 能去优化hadoop的一些性能问题,知晓大体性能的瓶颈点
- 可以改造内核,或者参与社区开发
- 有较多的大数据的项目经验,做过复杂项目
- 可以看下更多的1-2个计算引擎
高级
在这个阶段,一般书籍就没有太多的用处,一般需要看看paper
- 修改各种引擎的核心代码,这些包括:hadoop/spark/flink/strom/hive/hbase/kafka/等
- 学习力强,可以迅速看清楚各种框架
- 有较强的分布式理论知识
- 能触类旁通,创新出一套新的大数据引擎,比如:spark
- 能前瞻性预测未来引擎发展方向
建议
- 最好的学习方式是:动手,动手写code
- 多参加技术会议,融入hadoop圈子,如:hadoop submit,spark submit,有时候一些城市会有一些交流会
- 关注Cloudera、databricks、阿里云E_MapReduce 等博客
- 多关注一些群,可以加笔者的微信(fengshenwukong),笔者拉下
- 多关注一些圈子内的微博号或者同学,可以从笔者的微博关注里面找(笔者的微博号:阿里封神)
- 关注你关注的软件的邮件列表
- 多写写博客,分享自己的心得,把知识沉淀下来
- 多关注社区的发展
推荐的资料
hadoop生态资料太多,google一下一大把,笔者这里列出的都是基本的:
首先推荐《hadoop权威指南》,基本会讲述hadoop生态的各个组件,是不错的书籍。
再次就是各个软件的官方文档,例如:hbase、hadoop、spark、kafka、
Hadoop基础及ETL
主要包括Hadoop Yarn、HDFS、HBase、Hadoop MapReudce、Hive、Spark SQL等
- 书籍:《Spark大数据处理技术》
- 书籍:《Hive编程指南》
- 书籍:《Hadoop技术内幕:深入解析YARN架构设计与实现原理》
- 书籍:《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》
- 书籍:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》
- 论文:Bigtable: A Distributed Storage System for Structured Data
- 论文:MapReduce: Simplified Data Processing on Large Clusters
- 论文:The Google File System
- 论文:Spark: Cluster Computing with Working Sets
- 论文:Spark SQL: Relational Data Processing in Spark
- 博客:Spark源码分析
流式实时处理技术
主要包括Jstorm、Spark Streaming
- 官方文档:JStorm Chinese Documentation
- 官方文档:Spark Streaming
大数据KV、MPP领域
主要包括的是Hbase、Impala
- 书籍: 《HBase权威指南》
本文章后续会继续更新,欢迎大家关注!