spark、storm还是flink?推荐一份海量数据处理技术的书单
点击蓝色“程序员书单”关注我哟
加个“星标”,每天带你读好书!
海量的数据处理问题,对其进行处理是一项艰巨而复杂的任务。原因有以下几个方面:
数据量过大
数据中什么情况都可能存在。如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千万级别,甚至过亿,那不是手工能解决的了,必须通过工具或者程序进行处理,尤其海量的数据中,什么情况都可能存在,例如,数据中某处格式出了问题,尤其在程序处理时,前面还能正常处理,突然到了某个地方问题出现了,程序终止了。
软硬件要求高
系统资源占用率高。对海量的数据进行处理,除了好的方法,最重要的就是合理使用工具,合理分配系统资源。一般情况,如果处理的数据过TB级,小型机是要考虑的,普通的机子如果有好的方法可以考虑,不过也必须加大CPU和内存,就象面对着千军万马,光有勇气没有一兵一卒是很难取胜的。
要求很高的处理方法和技巧
这也是本文的写作目的所在,好的处理方法是一位工程师长期工作经验的积累,也是个人的经验的总结。没有通用的处理方法,但有通用的原理和规则。
大数据处理技术发展多年,已经很多先进的海量数据处理方案,从以前的离线批处理计算,到现在的流式计算、图计算等领域快速发展,今天我们就来推荐一份海量数据处理书单给各位。
海量数据处理系列书单
《Storm分布式实时计算模式》由Apache Storm 项目核心贡献者吉奥兹、奥尼尔亲笔撰 写,融合了作者丰富的Storm实战经验,通过大量 示例,全面而系统地讲解使用Storm进行分布式实 时计算的核心概念及应用,并针对不同的应用场 景,给出多种基于Storm的设计模式,为读者快速 掌握Storms分布式实时计算提供系统实践指南。
《Storm分布式实时计算模式》分为10章:第l章介绍使用storm建立一 个分布式流式计算应用所涉及的核心概念,包括 storm的数据结构、开发环境的搭建,以及Storm 程序的开发和调试技术等;第2章详细讲解storm 集群环境的安装和搭建,以及如何将topology部署 到分布式环境中;第3章通过传感器数据实例详细 介绍Trident topology;第4章讲解如何使用Storm 和Tridentj挂行实时趋势分析;第5章介绍如何使用 Storm进行图形分析,将数据持久化存储在图形数 据库中,通过查询数据来发现其中潜在的联系;第 6章讲解如何在Storm上使用递归实现一个典型的人 工智能算法;第7章演示集成Storm和非事务型系统 的复杂性,通过集成Storm和开源探索性分析架构 Druid实现一个可配置的实时系统来分析金融事件。
第8章探讨Lambda体系结构的实现方法,讲解如何 将批处理机制和实时处理引擎结合起来构建一个可 纠错的分析系统;第9章讲解如何将Pig脚本转化为 topology,并且使用Storm-YARN部署topology,从 而将批处理系统转化为实时系统;第10章介绍如 何在云服务提供商提供的主机环境下部署和运行 Storm。
本书基于Spark发行版2.4.4写作而成,包含大量的实例与一个完整项目,层次分明,循序渐进。全书分为3部分,涵盖了技术理论与实战,读者可以从实战中巩固学习到的知识。第一部分主要围绕BDAS(伯克利数据分析栈),不仅介绍了如何开发Spark应用的基础内容,还介绍了Structured Streaming、Spark机器学习、Spark图挖掘、Spark深度学习等高级主题,此外还介绍了Alluxio系统。
第二部分实现了一个企业背景调查系统,比较新颖的是,该系统借鉴了数据湖与Lambda架构的思想,涵盖了批处理、流处理应用开发,并加入了一些开源组件来满足需求,既是对本书第一部分很好的巩固,又完整呈现了一个实时大数据应用的开发过程。第三部分是对全书的总结和展望。
本书适合准备学习Spark的开发人员和数据分析师,以及准备将Spark应用到实际项目中的开发人员和管理人员阅读,也适合计算机相关专业的高年级本科生和研究生学习和参考,对于具有一定的Spark使用经验并想进一步提升的数据科学从业者也是很好的参考资料。
作者简介
范东来,北京航空航天大学硕士,泛山科技联合创始人,Spark Contributor、SupersetContributor,架构师,技术图书作者和译者,著有《Hadoop海量数据处理》,译有《解读NoSQL》《NoSQL指南》《神经网络算法和实现》《Hadoop深度学习》《精通数据科学算法》等,另译有畅销小说《巧克力时代:因为这是我的血脉》。
Apache Flink项目的资深贡献者Fabian Hueske和Vasiliki Kalavri展示了如何使用Flink DataStream API实现可伸缩的流式应用,以及怎样在业务环境中持续运行和维护这些应用。流处理的理想应用场景有很多,包括低延迟ETL、流式分析、实时仪表盘以及欺诈检测、异常检测和报警。你可以在任意类型的持续数据(包括用户交互、金融交易和物联网等数据)生成后,立即对它们进行处理。
了解有关分布式状态化流处理的概念和挑战。
探索Flink的系统架构,包括事件时间处理模式和容错模型。
理解DataStream API的基础知识和构成要素,包括基于时间和有状态的算子。
以精确一次的一致性读写外部系统。
部署和配置Flink集群。
对持续运行的流式应用进行运维。
作者简介
作者介绍
Fabian Hueske是Apache Flink项目的PMC成员,他从Flink项目创始之初就开始参与贡献。Fabian是data Artisans(现在的Ververica)公司的创始人之一,拥有柏林工业大学的计算机科学博士学位。
Vasiliki Kalavri是苏黎世联邦理工学院系统组的博士后研究员。她同样也是Apache Flink项目的PMC成员。作为Flink早期贡献者,Vasiliki参与了图计算库Gelly以及初期版本的Table API和流式SQL的建设工作。
译者介绍
崔星灿,加拿大约克大学博士后,分布式流处理技术和开源爱好者,Apache Flink Committer。