大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。
「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战」
大家好,我是一条~
5小时推开Spark的大门,第二小时,带大家搭建开发环境。
主要分两步,
话不多说,动起来!
Spark是基于Scala语言编写的,需要运行在JVM上,运行环境Java7以上,本文使用Java8,Centos7。
用Python也是可以的,但本教程不详细讲。
我使用的是腾讯云的服务器,没有的同学用虚拟机也是可以的,Win和Mac如何安装虚拟机不再赘述,CSDN有很多教程,也比较简单。
记得要配置好Java的环境变量哦!
首先使用wget
下载安装包(也可以本地下载之后上传)
cd /data/opt/spark
wget --no-check-certificate https://downloads.apache.org/spark/spark-3.2.0/spark-3.2.0-bin-hadoop3.2.tgz
下载完成后解压
可以改个短一些的名字,版本号最好保留
tar -zxf spark-3.2.0-bin-hadoop3.2.gz
可以自己cd进去看一看
进入sbin
目录,执行./start-master.sh
文件。
根据输出的内容,找到日志。
查看日志
访问网页端,如果是服务器记得开放对应端口。
ok,启动成功!
Spark-Shell是一种学习API的简单方式,能够交互式的分析数据。能够把分布在集群上的数据加载到内存节点中,使分布式处理可以秒级完成。
快速实时的查询、计算、分析一般都在Shell中完成。
所以要学习Spark程序开发,建议先学习Spark-Shell交互式学习,加深对Spark程序开发的理解。
Spark提供了Python Shell和Scala Shell两种,本套课程使用Scala。
进去bin
目录,执行spark-shell
cd bin
./spark-shell
ok,为了很好体会Spark-Shell,实验一个例子:读取一个文件,并计算行数
首先创建一个测试文件,linux的基本操作哈
hello scala!
hello spark!
hello world!
回到Shell
先读取文件,再计算行数
var lines=sc.textFile("../../file/test")
// 总行数
lines.count()
// 第一行
lines.first()
输出如下:
到此,Spark安装完成,同学们可能发现一个问题,这每次写代码也太麻烦了,就不能像Java代码一样吗?
当然是可以的,下面就教大家怎么给IDEA配置Scala插件。
IDEA相信大家都用过,不再赘述安装激活成功教程的过程。
在settings
里面按图片示例安装Scala插件,会比较慢。安装成功后需要重启IDEA。
如图,新建一个Maven项目,起个名字,叫spark-wordcount
导入依赖
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.2.0</version>
</dependency>
</dependencies>
我们写完程序肯定是要放到服务器运行的,就像Java一样,所以还要配置打包参数。
<build>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.2</version>
<executions>
<execution>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
reload之后如果没问题,我们的项目就创建好了。
下面新建一个类WordCount
注意是Scala Class,然后选择Object。
再写个main方法,作为程序的入口,和Java有很多相似的地方。
打印测试一下
object WordCount {
def main(args: Array[String]): Unit = {
print("hello world!")
}
}
输出结果
ok,开发环境已经搭建完毕。
本日打卡内容到此结束,偏实战多一些,同学们一定要亲自操作,下一节课带大家做一个大数据入门的经典案例——WordCount。