大数据工具hadoop入门与进阶建议
关于入门:
我比较赞同有位匿名同学的回答,如果看书一头雾水的话,先从实际例子出发会比较容易上手。WordCount和Weather Data这种“Hello World”的例子网上有很多,可以复制下来自己跑一遍,基本上就知道Hadoop是个什么东西,能用来干什么了。跑这些例子都不需要一个完整的Hadoop集群,自己本地的VM上就可以完成。
之所以我觉得这是比较好上手的方式,是因为我也认为Hadoop是一个工具,而不是一门学科。工具的一般用法是你有一个实际的问题需要解决(求和,求平均值之类的问题都可以,两三行数据,不需要“大数据”),然后把这个工具运用到你的问题里面,能够使用工具之后再开始研究怎么更好的更有效的使用这个工具。
入门会Google就行了!
关于进阶:
知道是什么,能干什么之后,需要知道为什么。这很重要,这关系到你的任务是跑三个小时还是要跑三天,是需要三台服务器还是需要三十台服务器,就直接关系到最后要花三十还是花三百。
进阶之前需要一点准备工作:Linux -(这对于所有Distributed System都非常重要),Java(能看得懂代码就可以了),Maven(能用就可以),Scala(optional,可以边学边用),SBT(optional,可以照着tutorial用),
进阶就需要看书(绝对不需要看源代码。。看得下去嘛那),前面有很多位同学推荐了各种书各种博客,都应该不错。唯一就是时间和版本问题,有些书和博客可能写得比较早,介绍的Hadoop和其他应用都是很早的版本,现在已经完全不对了。尤其是Hadoop1和Hadoop2,这个区别是很大的,有时候碰到来面试的同学侃侃而谈Hadoop1,忍不住扶额。
书籍我只推荐两本
- Hadoop The Definitive Guide最新版,这也是我当时的入门书,写的非常好。强烈强烈建议看英文版的,否则容易交流障碍。。。这本书的例子都在github上可以下载下来,都跑一跑。另外Hadoop相关职位的面试问题大部分都来自于这本书,这本书看两遍基本上面试没问题。这是唯一一本我觉得从头到尾必看的书。
- Cloudera的tutorial,user guide,blog和best practice。这个比较官方和实效性。这不是说你要一页一页看完,是你有实际问题自己解决不了了来找参考资料。