Spark3.X 零基础入门实战
文章平均质量分 59
基于Spark3.2.X最新版本,作为Spark的入门学习笔记,从Spark核心编程语言Scala讲起,知识面比较广,涵盖了当前整个Spark生态系统主流的大数据开发技术。内容全面,以实操案例为主,理论为辅,一步一步手把手对常用的Spark离线计算以及实时计算等系统进行了深入讲解。
大数据张老师
Java大数据专家、讲师,先后多次给中国海洋大学、曲阜师范大学、青岛理工大学等多所高校举行大数据专题讲座与实训授课。著有畅销书《Hadoop大数据技术开发实战》《Spark大数据分析实战》《Hadoop3.X大数据开发实战(视频教学版)》《Spark3.X大数据分析实战(视频教学版)》《Flink大数据分析实战》。
展开
-
Spark零基础入门实战(八)Spark运行时架构
Spark有多种运行模式,可以运行在一台机器上,称为本地(单机)模式,也可以以YARN或Mesos作为底层资源调度系统以分布式的方式在集群中运行,称为Spark On YARN模式,还可以使用Spark自带的资源调度系统,称为Spark Standalone模式。本地模式通过多线程模拟分布式计算,通常用于对应用程序的简单测试。本地模式在提交应用程序后,将会在本地生成一个名为SparkSubmit的进程,该进程既负责程序的提交,又负责任务的分配、执行和监控等。原创 2022-12-27 09:22:04 · 365 阅读 · 0 评论 -
Spark零基础入门实战(七)Spark生态系统架构
在正式讲解Spark之前,读者首先需要了解大数据开发的总体架构,如图在大数据领域,数据的来源往往是关系型数据库、日志文件(用户在Web网站和手机App中浏览相关内容时,服务器端会生成大量的日志文件)、其他非结构化数据等。要想对这些大量的数据进行离线或实时分析,需要使用数据传输工具将其导入Hadoop平台或其他大数据集群中。数据传输工具常用的有Flume、Sqoop、Kafka。Flume是一个日志收集系统,用于将大量日志数据从许多不同的源进行收集、聚合,最终移动到一个集中的数据中心进行存储;原创 2022-12-27 09:14:21 · 337 阅读 · 0 评论 -
Spark零基础入门实战(六)使用IntelliJ IDEA创建Scala项目
IntelliJ IDEA(简称IDEA)是一款支持Java、Scala和Groovy等语言的开发工具,主要用于企业应用、移动应用和Web应用的开发。IDEA在业界被公认为是很好的Java开发工具,尤其是智能代码助手、代码自动提示、重构、J2EE支持等功能非常强大。原创 2022-12-09 17:22:31 · 1119 阅读 · 0 评论 -
Spark零基础入门实战(五)使用Eclipse创建Scala项目
本节讲解在Windows中使用Scala for Eclipse IDE编写Scala程序。原创 2022-12-09 17:16:53 · 1417 阅读 · 0 评论 -
Spark零基础入门实战(四)Scala抽象类和特质
需要注意的是,上述Teacher类中speak()方法的地址字段(address)是从父类(抽象类Person)中继承而来的。由于该字段在Person中有初始化值,不是抽象字段,若需要在Teacher类中修改该字段的值,则可以在Teacher类的构造函数或其他方法中使用this.address对其重新赋值。原创 2022-12-09 17:12:57 · 817 阅读 · 0 评论 -
Spark零基础入门实战(三)Scala类和对象
我们已经知道,对象是类的具体实例,类是抽象的,不占用内存,而对象是具体的,占用存储空间。Scala中一个简单的类定义是使用关键字class,类名必须大写。如果一个类不写访问修饰符,那么默认访问级别为Public,这与Java是不一样的。关键字new用于创建类的实例。单例对象Scala中没有静态方法或静态字段,但是可以使用关键字object定义一个单例对象,单例对象中的方法相当于Java中的静态方法,可以直接使用“单例对象名.方法名”方式进行调用。单例对象除了没有构造器参数外,可以拥有类的所有特性。原创 2022-12-09 17:05:37 · 616 阅读 · 0 评论 -
Spark零基础入门实战(二)Scala集合之元组、Set
元组是一个可以存放不同类型对象的集合,元组中的元素不可以修改。例如,定义一个元组t:也可以使用以下方式定义元组,其中Tuple3是一个元组类,代表元组的长度为3:目前,Scala 支持的元组最大长度为22,即可以使用Tuple1到Tuple22。元组的实际类型取决于元素数量和元素的类型。例如,(20,"shanghai")的类型是Tuple2[Int,String],(10,20,"beijing","shanghai","guangzhou")的类型是Tuple5[Int,Int,String原创 2022-12-08 10:45:27 · 735 阅读 · 0 评论 -
Spark零基础入门实战(二)Scala集合之List、Map
Scala中的List分为可变List和不可变List,默认使用的List为不可变List。不可变List也可以增加元素,但实际上生成了一个新的List,原List不变。例如,创建一个Int类型的List,名为nums,代码如下:在该List的头部追加一个元素1,生成一个新的List:在该List的尾部追加一个元素5,生成一个新的List:List也支持合并操作,例如,将两个List合并为一个新的List,代码如下:输出结果如下:此外,常用的还有二维List:2. 可变L原创 2022-12-08 10:36:56 · 1235 阅读 · 0 评论 -
Spark零基础入门实战(二)Scala集合之数组
Scala集合分为可变集合和不可变集合。可变集合可以对其中的元素进行修改、添加、移除;而不可变集合永远不会改变,但是仍然可以模拟添加、移除或更新操作。这些操作都会返回一个新的集合,原集合的内容不发生改变。Scala中的数组分为定长数组和变长数组,定长数组初始化后不可对数组长度进行修改,而变长数组则可以修改。定义数组的同时可以初始化数据,代码如下:也可以在定义时指定数组长度,稍后对其添加数据,代码如下:(2)数组遍历可以使用for循环对数组进行遍历,输出数组所有的元素,代码如下:(3)常原创 2022-12-08 09:22:05 · 658 阅读 · 0 评论 -
Spark零基础入门实战(二)Scala基础之表达式和循环
Scala中常用的表达式主要有条件表达式和块表达式。条件表达式主要是含有if/else的语句块,如以下代码所示,由于if和else的返回结果同为Int类型,因此变量result为Int类型:若if与else的返回类型不一致,则变量result为Any类型:当然也可以在一个表达式中进行多次判断:2. 块表达式块表达式为包含在符号“{}”中的语句块。例如以下代码:代码中的竖线表示Scala命令行中的换行,在实际程序中不需要编写。需要注意的是,Scala中的返回值是最后一条语句的执行结原创 2022-12-08 09:07:09 · 431 阅读 · 0 评论 -
Spark零基础入门实战(二)Scala基础之数据类型
在Scala中,所有的值都有一个类型,包括数值和函数。如图1-4所示,说明了Scala的类型层次结构。 Any是Scala类层次结构的根,也被称为超类或顶级类。Scala执行环境中的每个类都直接或间接地从该类继承。该类中定义了一些通用的方法,例如equals()、hashCode()和toString()。Any有两个直接子类:AnyVal和AnyRef。AnyVal表示值类型,有9种预定义的值类型,它们是非空的Double、Float、Long、Int、Short、Byte、Char、Unit和Boole原创 2022-12-08 08:59:38 · 373 阅读 · 0 评论 -
Spark零基础入门实战(二)Scala基础之变量声明
最初学习Scala的时候建议读者在Scala命令行模式中操作,最终程序的编写可以在IDE中进行。在Windows的CMD窗口中或CentOS的Shell命令中执行scala命令,即可进入Scala的命令行操作模式。本文将在Scala的命令行操作模式中讲解Scala的基础知识。Scala中变量的声明使用关键字val和var。val类似Java中的final变量,也就是常量,一旦初始化将不可修改;var类似Java中的非final变量,可以被多次赋值,多次修改。例如,声明一个val字符串变量str:上述代原创 2022-12-08 08:55:44 · 686 阅读 · 0 评论 -
Spark零基础入门实战(一)Scala安装
Scala是一种将面向对象和函数式编程结合在一起的高级语言,旨在以简洁、优雅和类型安全的方式表达通用编程模式。Scala功能强大,不仅可以编写简单脚本,还可以构建大型系统。Scala运行于Java平台,Scala程序会通过JVM被编译成class字节码文件,然后在操作系统上运行。其运行时候的性能通常与Java程序不分上下,并且Scala代码可以调用Java方法、继承Java类、实现Java接口等,几乎所有Scala代码都大量使用了Java类库。由于Scala运行于Java平台,因此安装Scala之前需要确保原创 2022-12-05 16:33:13 · 772 阅读 · 0 评论