个人感觉一篇很不错的文章-----《Hadoop核心技术》作者翟周伟 :我与Hadoop的不解之缘 - 似水流年 - CSDN博客 http://blog.csdn.net/xiaoshunzi111/article/details/49075715
Hadoop发展现状、特性及发展前景
CSDN:你怎么看待国内外的Hadoop发展现状?可否预测下Hadoop未来的发展前景?
翟周伟:目前Hadoop可以说是已经成为工业界大数据领域的事实标准,在国外主要以Yahoo、Facebook、EBay、IBM等为代表;在国内则以百度、腾讯、阿里等互联网公司为主。而Hadoop作为开源软件,这些大公司的使用和改进迭代进而又完善并推动Hadoop的进一步发展,因此Hadoop的发展是离不开这些互联网公司的使用,从本质上看还是因为互联网的快速发展导致了海量数据的分布式存储和计算需求,而Hadoop正是为这样的需求提供了非常好的解决方案。
对于Hadoop的发展前景我从以下几个方面谈谈:
第一个方向就是统一资源管理与调度方向,目前各大互联网公司商用的Hadoop集群还是以Hadoop-1.X版本为主,Hadoop-1.X版本的有效性和稳定性已经得到验证,但是Hadoop-1.X也存在很多问题,例如资源分配以槽位为基本单元,没有考虑到应用实际需要的内存,CPU等资源;还有就是Hadoop-1.X仅仅只支持MapReduce模型,计算资源利用率不高,一个MR任务只能包含一个map和一个reduce任务,而实际需求往往是一个DAG任务。针对这些问题社区版Hadoop-2.X提出了YARN框架,在资源管理层来解决这些问题,同时各大商用发行版以及互联网公司也提出类似的框架来解决Hadoop-1.X中的问题。
第二个发展方向就是Hadoop高可用性解决方案,目前的Hadoop还是单Master节点设计,因此集群的规模受到主节点的硬件配置限制,同时可靠性上存在单点故障(SPOF )问题,这一点目前各大Hadoop商业发行版以及各大互联网公司都在研发多Master节点设计的解决方案,因此也是未来重点方向。
第三个发展方向就是Hadoop生态系统集成,目前Hadoop已经发展为一个完备的生态系统,这个生态系统最底层以HDFS和MapReduce为核心,上层为各种存储,计算,分析等应用系统,如何将这些系统很好的集成起来形成一个类似完善的分布式操作系统和云计算应用系统是一个非常诱人的发展方向。
第四点就是灵活性上,目前的Hadoop为用户提供了非常便利的并行计算框架,但是这个框架本身的流程过于复杂,用户实际的需求往往很简单,例如Hadoop中在map的输出和reduce的输入都需要进行排序,而实际上并不是所有的任务都需要排序,因此对于那些不需要排序的应用就会造成资源的浪费又消耗了时间。如果可以提供是否配需的可控制参数就可以很好的解决类似的问题。因此Hadoop的灵活性上也是一个发展方向。
CSDN:给学习Hadoop集群方面的开发者分享些经验吧。
翟周伟:首先搞清楚什么是Hadoop以及Hadoop可以用来做什么,可以查阅相关网站介绍或者Hadoop综述相关论文文献资料等。
然后,可以从最经典的词频统计程序开始,初步了解MapReduce的基本思路和处理数据的方式。这里建议大家直接浏览Hadoop的官方网站上WiKi文章,并按照WiKi一步一步完成实例的理解和学习。
接着,就可以正式学习Hadoop的基本原理,包括HDFS和MapReduce,先从整体,宏观核心原理看,先别看源码级别。建议这块先阅读Google的相关两篇核心论文:《The Google File System》、《MapReduce: Simplied Data Processing on Large Clusters》;进一步,就可以深入HDFS、MapReduce和模块细节,这个时候可以结合源码深入理解,以及实现机制。
最后就是需要实战了,可以结合自己的项目或者相关需求来完成一些Hadoop相关应用,建议一些比较经典的Hadoop英文原版技术相关丛书:《Hadoop TheDefinitive Guide》、《Hadoop inAction》、《Pro Hadoop》,以及我新出版的《Hadoop核心技术》。