六、大数据处理框架的选择
1.对于初学者
由于Apache Hadoop在大数据领域的广泛使用,因此仍推荐作为初学者学习数据处理框架的首选。虽然MapReduce因为性能原因以后的应用会越来越少,但是YARN和HDFS依然作为其他框架的基础组件被大量使用(比如HBase依赖于HDFS,YARN可以为Spark、Samza等框架提供资源管理)。学习Hadoop可以为以后的进阶打下基础。
Apache Spark在目前的企业应用中应该是当之无愧的王者。在批处理领域,虽然Spark与MapReduce的市场占有率不相上下,但Spark稳定上升,而MapReduce却稳定下降。而在流处理领域,Spark Streaming与另一大流处理系统Apache Storm共同占据了大部分市场(当然很多公司会使用内部研发的数据处理框架,但它们多数并不开源)。伯克利的正统出身、活跃的社区以及大量的商用案例都是Spark的优势。除了可用于批处理和流处理系统,Spark还支持交互式查询、图计算和机器学习。Spark在未来几年内仍然会是大数据处理的主流框架,推荐同学们认真学习。
另一个作为混合处理框架的Apache Flink则潜力无限,被称作“下一代数据处理框架”。虽然目前存在社区活跃度不够高、商用案例较少等情况,不过“是金子总会发光”,如果Flink能在商业应用上有突出表现,则可能挑战Spark的地位。
2.对于企业应用
如果企业中只需要批处理工作,并且对时间并不敏感,那么可以使用成本较其他解决方案更低的Hadoop集群。
如果企业仅进行流处理,并且对低延迟有着较高要求,Storm更加适合,如果对延迟不非常敏感,可以使用Spark Streaming。而如果企业内部已经存在Kafka和Hadoop集群,并且需要多团队合作开发(下游团队会使用上游团队处理过的数据作为数据源),那么Samza是一个很好的选择。
如果需要同时兼顾批处理与流处理任务,那么Spark是一个很好的选择。混合处理框架的另一个好处是,降低了开发人员的学习成本,从而为企业节约人力成本。Flink提供了真正的流处理能力并且同样具备批处理能力,但商用案例较少,对于初次尝试数据处理的企业来说,大规模使用Flink存在一定风险。
七、学习资源
首先,任何开源项目最好的学习资源,就是官方文档。一般来讲,官方文档都会给出从下载到安装再到基础开发的一系列教程。推荐英语不算太差的同学尽量去撸官方文档。
其次,一些比较好的书也会对学习有很大帮助。相对于网络资源,书的优点是系统的列出了需要掌握的技能,缺点是时效性不高,尤其是中文版的书。不过下面还是列出了一些在数据处理方面经典的书籍,供同学们参考。
Hadoop:
链接地址:
https://book.douban.com/subject/26206050/
这本书被戏称为大象书,包含了Hadoop核心的MapReduce、YARN和HDFS,及Hadoop生态圈中常用的HBase、Hive等技术,初学者可以通过此书对Hadoop生态有一个较为全面的认识。
链接地址:
https://book.douban.com/subject/26377893/
虽然YARN是资源管理器,但是很多数据处理框架都用它来管理资源。想要深入了解YARN的同学们可以参考一下这本书。话说这本权威指南真的很权威,因为作者就是YARN的创建和开发团队。
Spark
链接地址:
https://book.douban.com/subject/26616244/
这本书也算是Spark最经典的入门书了,把Spark的基本概念和各个方面介绍的比较全面。缺点就是Spark发展比较快,所以这本书有点老了(2015年10月出版),有一小部分东西跟当前版本不太对应的上。
链接地址:
https://book.douban.com/subject/26647951/
这本书适合有一些Spark基础的同学(比如读完上一本书之后再读),主要介绍了利用Spark进行数据分析和机器学习。缺点和上一本一样,就是也有点老了。
链接地址:
https://book.douban.com/subject/27004653/
这是一本专门介绍Spark的图计算库Spark GraphX的书。优点是比较新(2017年3月出版),应该可以紧跟当前版本。缺点也是比较新,还没有太多人看过,所以不好评价。想尝鲜的同学们不妨试试。
其他
由于Samza技术比较新,相对也没那么热门,所以并没有什么靠谱的书可以推荐。
Flink同样也没有出版的中文书,倒是已经出版了几本英文书,不过英文原版书的价格大家懂的,土豪同学可以去电商网站上选购。Storm作为成熟的技术,世面上的中文书籍很多,但却没有一本书能获得众口一词的好评,所以这里也没有推荐。
【一文读懂】系列往期回顾:
独家 | 一文读懂特征工程
【独家】一文读懂数据可视化
【独家】一文读懂聚类算法
【独家】一文读懂关联分析
【独家】一文读懂大数据计算框架与平台
【独家】一文读懂文字识别(OCR)
【独家】一文读懂回归分析
【独家】一文读懂非关系型数据库(NoSQL)