讲一下hadoop的一些知识,对于初学者来说是个不错的参考,另外想要进入大数据圈子但是有困难有疑问的朋友,可以咨询魔据教育大数据。
关于入门:如果看书看的一头雾水的话,先从实际例子出发会比较容易上手。wordcount和weather data这种“hello world”的例子网上有很多,可以复制下来自己跑一遍,基本上就知道hadoop是个什么东西,能用来干什么了。跑这些例子都不需要一个完整的hadoop集群,自己本地的vm上就可以完成。之所以认为这是比较好的方式,是因为hadoop是一个工具,而不是一门学科。工具的一般用法是你有一个实际的问题需要解决(求和,求平均值之类的问题都可以,两三行数据,不需要“大数据”),然后把这个工具运用到你的问题里面,能够使用工具之后再开始研究怎么更好的更有效的使用这个工具。
关于进阶:知道是什么,能干什么之后,需要知道为什么。这很重要,这关系到你的任务是跑三个小时还是要跑三天,是需要三台服务器还是需要三十台服务器,就直接关系到最后要花三十还是花三百。进阶之前需要一点准备工作:linux -(这对于所有distributed system都非常重要),java(能看得懂代码就可以了),maven(能用就可以),scala(optional,可以边学边用),sbt(optional,可以照着tutorial用),进阶就需要看书,前面有很多位同学推荐了各种书各种博客,都应该不错。推荐两个hadoop the definitive guide最新版,写的非常好。强烈建议看英文版的,否则容易交流障碍……这本书的例子都在github上可以下载下来,都跑一跑。 cloudera的tutorial,user guide,blog和best practice。这个比较官方和实效性。
关于深入:关于怎么深入学习hadoop技术, hadoop分为两个大块:hdfs和mapreduce。 hdfs - hadoop distributed filesystem。这个概念很好,但是其实我不觉得很实用。但是如果你之后要往non sql方面深入的话这个还是很重要,hdfs是hbase的基础,hbase又可以延伸到big table,dynamodb,mango等。
spark要单独提出来讲一讲,spark其实不是hadoop上面的应用,它也可以使用除了yarn之外的其他资源分配系统。但是spark使用的人很多,很多任务用spark比用hadoop mr要快一些,spark也比其他的应用要复杂一点。如果有兴趣还是可以从hadoop the definitive guide开始,然后边做实际的例子边学习。
关于hadoop的使用方式:感觉现在各个公司使用hadoop的方式都不一样,主要我觉得有两种吧。第一种是long running cluster形式,比如yahoo,不要小看这个好像已经没什么存在感的公司,yahoo可是hadoop的元老之一。这种就是建立一个data center,然后有几个上千node的hadoop cluster一直在运行。