18910140161

Ubuntu 安装 Spark 3.0.1 初体验

顺晟科技

2021-06-16 10:27:55

339

官方入门文档

https://spark.apache.org/docs/latest/

火花下载地址

https://spark.apache.org/downloads.html

需要注意,默认这个页面的框架文件地址被墙了,需要自行解决。

我选择Spark 3.0.1版本apache hadoop 2.7预构建。

网站会自动推荐一个下载地址,可以看到默认选择的是国内的北京外国语大学的下载源:

wget https://后视镜。bfsu。edu。cn/Apache/spark/spark-3。0 .1/spark-3。0 .1-bin-Hadoop 2.7。图斯特拉古铁雷斯

下载。文件非常大,有210M之巨。

ls -lah

总计2.1亿英镑

-rw-rw-rw- 1中卫中卫中卫210M月28日17:25 spark-3。0 .1-bin-Hadoop 2.7。图斯特拉古铁雷斯

解压

焦油zxvf火花-3。0 .1-bin-Hadoop 2.7。图斯特拉古铁雷斯

目录结构

cd spark-3.0.1-bin-hadoop2.7

树-L 1。

执照

通知

自述文件

释放

会议

数据

的例子

罐子

库本内特

执照

蟒蛇

斯宾

纱线

11个目录,4个文件

火花壳使用前需要先安装爪哇运行时环境。/bin/spark-shell

没有设置JAVA_HOME。/bin/pyspark

没有设置JAVA_HOME

可见,即便是大蟒版本的火花壳也依赖于Java。

Spark 3.0.1对爪哇版本的要求

在一台机器上本地运行很容易——你只需要在你的系统路径上安装java,或者JAVA_HOME环境变量指向一个爪哇岛安装火花运行在Java 8/11,Scala 2.12,Python 2.7 /3.4,R 3.5上。从Spark 3.0.0开始,8u92版本之前的Java 8不支持。从Spark 3.0.0开始,3.6版之前的Python 2和Python 3不支持。对于Scala API,Spark 3.0.1使用Scala 2.12 .您将需要使用兼容的斯卡拉版本(2.12.x).

从火花官网文档https://spark.apache.org/docs/latest/可知,Spark 3.0.1依赖于Java 8u92版本以上。

人的本质安装Java 8

在我的人的本质上还没有安装爪哇环境:

编译命令

找不到命令javac ',但可以用:安装

sudo apt安装开放JDK-11-JDK-无头#版本11。0 .8 10-0ubuntu 1 ~ 20.04,或

sudo apt默认安装-JDK #版本2:1.11-72

sudo apt安装开放JDK-8-JDK-无头#版本8 u 265-b01-0 Ubuntu 2 ~ 20.04

sudo apt安装开放JDK-13-JDK-无头#版本13。0 .3 3-1ubuntu 2

sudo apt安装开放JDK-14-JDK-无头#版本14。0 .1 7-1ubuntu 1

sudo apt安装ecj # 3。16 .0-1版

直接恰当的安装:

sudo apt安装打开JDK-8-JDK-无头

安装后,确认安装完成:

爪哇岛版本

编程语言版本' 1.8.0_265 '

OpenJDK运行时环境(构建1。8 .0 _ 265-8u 265-b01-0ubuntu 2 ~ 20.04-b01)

OpenJDK 64位服务器虚拟机(版本25.265-b01,混合模式)

体验一下火花壳,《你好,世界》。/bin/spark-shell

20/10/08 12:27:26 WARN utils :您的主机名PCMIO-27VTFD 1解析为环回地址: 127 .0 .1 .1;改用192.168.0.109(在接口eth0上)

20/10/08 12:27:26 WARN utils :如果需要绑定到另一个地址,请设置火花_本地_知识产权

2008年10月20日12:27:26 WARN native code :无法为您的平台加载本机大数据库.在适用的情况下使用内置爪哇岛类

使用火花的默认log4j配置文件: org/Apache/Spark/log4j-默认值属性。

将默认日志级别设置为警告.

要调整日志记录级别,请使用sc.setLogLevel(newLevel).对于迷你图,使用设置日志级别(新级别)。

星火上下文网络用户界面可在http://192 .http://000006

火花上下文可用为sc' (master=local[*],app id=local-1602131252287).

火花会话以"火花"形式提供。

欢迎来到

____ __

/__/__ ___ _____//__

_\ \/_ \/_ `/__/'_/

/___/.__/\_,_/_//_/\ _ \ 3 .0 .一版

/_/

使用Scala 2。12 .10版(OpenJDK 64位服务器VM,Java 1.8.0_265)

键入表达式以进行计算。

有关更多信息,请键入:帮助。

斯卡拉

启动成功。

参照官网的快速入门示例https://spark.apache.org/docs/latest/quick-start.html

执行:

Scala val TextFile=spark。阅读。文本文件(' README。MD ')

textfile : org . Apache . spark . SQL . dataset[String]=[value : StrIng]

scala textFile.count()

res0: Long=108

108是什么?打开README.md,可以看到这个文件有108行。

Scala TextFile . filter(line=line . contains(' Spark '))。计数()

res3: Long=19

语法一目了然,不用注释就知道是什么意思。厉害!

Scala V.S. Python V.S. Java

spark的api操作语言应该用哪种语言一直是困扰我的问题。

Scala是官方推荐的语言

Python是我相对最喜欢的语言

Java是团队大都市的语言

比较Scala版本和Python版本的同一行函数语句:

Scala TextFile . filter(line=line . contains(' Spark '))。计数()

python TextFile . filter(TextFile . value . contains(' Spark '))。计数()

Scala在可读性方面其实更好。

官方没有给出java shell的例子,估计没有Java shell版本,scala应该是更好的选择。

但是,从Java版本的自包含应用程序版本的代码来看:

long Numbers=LogDATa . filter(s-s . contains(' b '))。count();

java版本的可读性也不错。同时,java具有以下优势:

Java应用更广泛。例如SpringBoot,Android开发。Scala相对有限。

java中的信息更加完整

Java人多,也方便项目维护和交接

虽然shell是调试的一大优势,但是vimssnippets不能用,而且这个优势不明显

所以我决定用Java作为Spark的练习语言。

我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航