我与Hadoop的不解之缘

解读Hadoop发展现状、特性及发展前景,分享创作《Hadoop核心技术》一书的灵感来源以及经验感悟。

 

 

问:首先请介绍下自已、目前所在公司以及负责的领域。

翟周伟:北京邮电大学研究生毕业,目前任职于百度,主要从事网页搜索相关的大规模数据挖掘和自然语言处理领域相关研发工作。

问:Hadoop在百度主要运用在哪些领域?使用情况是怎样的?

翟周伟:Hadoop在百度的应用领域主要包括:大数据挖掘与分析,日志分析平台,数据仓库系统,用户行为分析系统,广告平台等存储与计算服务。

目前百度的Hadoop集群规模已经超过数十个至多,单集群节点数目超过5000台,每天处理的数据量超过8000TB。同时百度在Hadoop的基础上还开发了自己的日志分析平台、数据仓库系统,以及统一C++编程接口,并对Hadoop深度改造,开发了性能更强的HCE(Hadoop C++ Extend Systerm)系统。

邂逅Hadoop

问:你是从什么时候开始接触Hadoop?作为一名Hadoop技术专家最吸引你的是什么?有没有背后的故事分享给大家?

翟周伟:我从2009年9月份开始接触Hadoop,Hadoop已经成为工业界大数据领域的事实标准,最吸引我的是最初Hadoop在大数据处理领域给我的震感,因为在使用Hadoop之前如果要处理上百TB的数据是一件非常困难的事情,首先需要考虑如何将这些数据存储下来,然后还需要考虑如何划分,以及数据容错性等复杂问题,而要完成这样的工作没有1个月的时间是很难搞定的,但是在Hadoop的帮助下一天甚至几个小时就可以完成从程序开发到最终数据产出,而且想想自己可以在很短的时间内操作成千上百台的集群来处理上百TB的数据,还是很震撼的。

问:在国内,你是利用Hadoop构建商业级大数据系统领域最早的人选之一,可以说是敢于吃螃蟹的第一人。那么,你是如何成为核心成员的?在开发期间有没有遇到过什么困难?又是如何克服的?

翟周伟:早在2009年的时候我们就尝试使用Hadoop技术为中国电信研究院,移动研究院等机构构建大数据云平台并作为生产平台为线上业务提供云存储与计算分析服务。这在当时来讲是国内将Hadoop落地应用的最早实践者之一。

在最初参与开发这些项目的时候我还并不是核心成员,而我要做的就是在项目中不断学习并积累Hadoop和大数据相关知识,最重要的就是在项目开发过程中证明自己,证明自己有足够的知识积累和能力完成项目并超出预期,当然在这个过程中也会遇到一些困难和挫折,例如数据的产出和预期不符,系统性能遇到瓶颈等问题,在面对这些问题的时候首先就是不能怕,对自己能解决这些问题要有足够的信心,然后就是认真分析问题,一步一步DEBUG定位问题,最终就可以解决掉这些问题,这也是一个艰苦的工作,不过我更享受成功后的那种喜悦之情,因为我喜欢技术挑战。

Hadoop发展现状、特性及发展前景

 

问:你怎么看待国内外的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的灵活性上也是一个发展方向。

问:Hadoop与Spark相比,两者之间有哪些异同点?各自的优势是什么?此外,Hadoop与Spark都支持容错性,Spark在容错性方面是否比Hadoop更具优越性?你怎么看?

翟周伟:在基本原理上:Hadoop和Spark最大的区别在于Hadoop是基于磁盘的大数据批处理系统;而Spark是基于弹性分布式数据集(RDD,显式地将数据存储到磁盘和内存中)。在模型上,Hadoop以MapReduce模型为核心,而Spark除了map和reduce函数操作之外的很多函数操作,诸如join、groupBy、reduceByKey等。

在优势上,Hadoop可以处理超大规模的数据,适合日志分析挖掘等较少迭代的长任务需求,同时Hadoop很好的结合了数据的分布式存储和计算;而Spark适合数据挖掘,机器学习等多轮迭代式计算任务,Spark本身并没有提高数据的分布式存储解决方案,还需要依赖HDFS等第三方存储系统。

在容错性上需要考虑两个方面,第一就是数据容错性;第二就是节点容错性。Hadoop在数据容错性上考虑的很全面,从HDFS本身的冗余复制机制,到安全模式,数据校验,元数据保护,快照机制等,在节点容错性上Hadoop从资源调度层次来解决。而Spark在数据容错性上是建立在RDD概念之上,当一个节点出现故障时,Spark会根据存储信息重新构造数据集。因此Spark在容错性上并不比Hadoop具有优越性,应该是在容错性上Hadoop考虑的更全面,而Spark更加在意处理数据的效率和响应时间。

问:Hadoop已经成为大数据工业级的标准,有很多组件,比如Hive、Hbase、HDFS等,能说说各自的优缺点以及适合的场景吗?

翟周伟:优缺点以及适应场景如下表格:

 

在这里我还是要推荐下我自己建的大数据学习交流qq裙:522189307 , 裙 里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴。上述资料加群可以领取
 

你可能感兴趣的:(2019年5月,2019年3月,2018年11月,2018年6月,2018年12月,2019年4月)