前言 党的二十大指出“实践没有止境,理论创新也没有止境”。随着互联网技术的快速发展,各种数字设备、传感器、物联网设备等在全球范围内产生了海量数据。这些数据以几何速度爆发性增长,给传统的数据处理方式带来了前所未有的挑战。如何满足大规模数据处理的需求,成了一个热门的研究课题,基于这种需求,人们需要新的技术来处理海量数据。 Spark提供了快速、通用、可扩展的大数据处理分析引擎,有效解决了海量数据的分析、处理问题,因此基于Spark的各种大数据技术得到了广泛应用和普及。自Spark项目问世以来,Spark生态系统不断壮大,越来越多的大数据技术基于Spark进行开发和应用,在国内外各企业中得到了广泛应用,对于要往大数据方向发展的读者而言,学习Spark是一个不错的选择。 本书在《Spark大数据分析与实战》基础上进行了改版,优化了原书内容,并进行了以下调整。 ●新增了Spark流式计算引擎Structured Streaming的讲解。 ●调整了项目实现和背景,使项目的内容更加丰富。 ●调整了部分需求的实现方式,增强了教学的实用性。 ●调整了知识讲解的结构,更符合循序渐进的学习规律。 ●添加素质教育的内容,将素质教育的内容与专业知识有机结合。 本书基于Spark 3.x和Scala 2.x,循序渐进地介绍了Spark的相关知识以及Spark生态体系一些常用的组件和开源大数据项目。本书共10章,具体内容如下。 ●第1章主要讲解什么是Scala以及Scala编程相关知识。 ●第2章主要介绍什么是Spark,以及部署Spark的方式,并通过Spark Shell和一个简单的案例介绍Spark的使用。 ●第3、4章主要讲解如何使用Spark的两个组件Spark RDD和Spark SQL进行数据处理,并利用这两个组件处理和操作不同的数据源。 ●第5、6章主要介绍Spark生态体系常用开源大数据项目的原理和使用,并利用HBase实现数据存储和Kafka实现数据的生产和消费。 ●第7~9章主要讲解如何使用Spark的3个组件Spark Streaming、Structured Streaming和Spark MLlib,并利用这3个组件实现数据的实时处理和通过模型推荐数据。 ●第10章通过一个完整的实战项目,指导读者灵活运用Spark及其生态系统进行简单的项目开发。 在学习过程中,读者如果遇到困难,建议不要纠结于某个地方,可以先往后学习。通常来讲,通过逐渐深入的学习,前面不懂和产生疑惑的知识点也就能够理解了。在学习编程和部署环境的过程中,一定要多动手实践,如果在实践的过程中遇到问题,建议多思考,厘清思路,认真分析问题发生的原因,并在问题解决后及时总结经验。 前言Spark大数据分析与实战(第2版)本书配套服务 为了提升您的学习或教学体验,我们精心为本书配备了丰富的数字化资源和服务,包括在线答疑、教学大纲、教学设计、教学PPT、教学视频、测试题、源代码等。通过这些配套资源和服务,我们希望让您的学习或教学变得更加高效。请扫描下方二维码获取本书配套资源和服务。 致谢 本书的编写和整理工作由传智教育完成,全体参编人员在编写过程中付出了辛勤的劳动,除此之外还有许多试读人员参与了本书的试读工作并给出了宝贵的建议,在此一并表示衷心的感谢。 意见反馈 本书难免有不妥之处,欢迎读者提出宝贵意见。在阅读本书时,如果发现任何问题或有不认同之处,可以通过电子邮件与编者联系。请发送电子邮件至itcast_book@vip.sina.com。 传智教育黑马程序员2025年1月于北京