当今互联网已进入大数据时代,大数据技术已广泛应用于金融、医疗、教育、电信、政府等领域。各行各业每天都在产生大量的数据,数据计量单位已从Byte、KB、MB、GB、TB发展到PB、EB、ZB、YB,甚至是BB、NB、DB。预计未来几年,全球数据将呈爆炸式增长。谷歌、阿里巴巴、百度、京东等互联网公司都急需掌握大数据技术的人才,大数据相关人才出现了供不应求的状况。
Spark作为下一代大数据处理引擎,现已成为当今大数据领域非常活跃、高效的大数据计算平台,很多互联网公司都使用Spark来实现公司的核心业务,例如阿里的云计算平台、京东的推荐系统等,只要和海量数据相关的领域,都有Spark的身影。Spark提供了Java、Scala、Python和R的高级API,支持一组丰富的高级工具,包括使用SQL进行结构化数据处理的Spark SQL,用于机器学习的MLlib,用于图处理的GraphX,以及用于实时流处理的Spark Streaming。这些高级工具可以在同一个应用程序中无缝地组合,大大提高了开发效率,降低了开发难度。
本书基于Spark 2.4.x新版本编写,作为Spark的入门书,知识面比较广,涵盖当前整个Spark生态系统主流的大数据开发技术。本书内容丰富,以实操案例为主,理论为辅,一步一步手把手对常用的Spark离线计算以及实时计算等系统进行讲解。
全书共9章,第1章讲解Scala语言的基础知识,包括IDEA工具的使用等;第2章讲解Spark的主要组件、集群架构原理、集群环境搭建以及Spark应用程序的提交和运行;第3~9章讲解离线计算框架Spark RDD、Spark SQL和实时计算框架Kafka、Spark Streaming、Structured Streaming以及图计算框架GraphX等的基础知识、架构原理,同时包括常用的Shell命令、API操作、内核源码剖析,并通过多个实际案例讲解各个框架的具体应用以及与Hadoop生态系统框架Hive、HBase、Kafka的整合操作。
本书推荐的阅读方式是按照章节顺序从头到尾完成阅读,因为后面的很多章节是以前面的章节为基础的,而且这种一步一个脚印、由浅入深的方式将使你更加顺利地掌握Spark的开发技能。
学习本书时,首先学习第1章的Scala语言基础,在IDEA中编写Scala程序;然后学习第2章,掌握Spark的集群架构并搭建好Spark集群环境;接着依次学习第3~9章,学习每一章时先了解该章的基础知识和框架的架构原理,再进行Shell命令、API操作等实操练习,这样学习效果会更好。当书中的理论和实操知识都掌握后,可以举一反三,自己开发一个Spark应用程序,或者将所学知识运用到自己的编程项目上,也可以到各种在线论坛与其他Spark爱好者进行讨论,互帮互助。
为方便读者更好地使用本书,本书还提供了PPT课件和程序源码,读者扫描下述二维即可下载使用。如果下载有问题,请发邮件至bootsaga@126.com,邮件标题为:“Spark大数据分析实战”。
本书可作为Spark新手和大数据开发人员的学习用书,要求读者具备一定的Java、Linux、Hadoop基础,对于没有任何Spark基础的读者完全可以对照书中的步骤成功地搭建属于自己的Spark集群。通过对本书的学习,读者能够对Spark相关框架迅速理解并掌握,可以熟练使用Spark集成环境进行大数据项目的开发。
由于水平所限和工作繁忙,书中难免出现错误或不准确的地方,恳请读者批评指正。
张伟洋
2020年2月于青岛