2021年大数据Spark(五):大环境搭建本地模式 Local

2021-10-09 17:21:58 浏览数 (1)


环境搭建-Local

Spark中有2类角色,一个是Master类似Namenode做管理

一个是Worker类似DataNode是干活的。

Local模式就是,以一个JVM进程,去模拟整个Spark的运行环境,就是讲Master和Worker角色以线程的形式运行在这个进程中。

安装包下载

目前Spark最新稳定版本:2.4.x系列,官方推荐使用的版本,也是目前企业中使用较多版本,网址:

https://github.com/apache/spark/releases

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

http://archive.apache.org/dist/spark/spark-2.4.5/

Spark 2.4.x依赖其他语言版本如下,其中既支持Scala 2.11,也支持Scala 2.12,推荐使用2.11。

​​​​​​​Spark安装

将spark安装包【spark-2.4.5-bin-hadoop2.7.tgz】解压至【/export/server】目录:

代码语言:javascript复制
解压软件包

tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz

创建软连接,方便后期升级

ln -s /export/server/spark-2.4.5-bin-hadoop2.7 /export/server/spark

如果有权限问题,可以修改为root,方便学习时操作,实际中使用运维分配的用户和权限即可

chown -R root /export/server/spark-2.4.5-bin-hadoop2.7

chgrp -R root /export/server/spark-2.4.5-bin-hadoop2.7

中各个目录含义如下:

bin        可执行脚本

conf       配置文件

data       示例程序使用数据

examples   示例程序

jars       依赖 jar 包

python     pythonAPI

sbin       集群管理命令

yarn       整合yarn需要的东东

​​​​​​​运行spark-shell

开箱即用

直接启动bin目录下的spark-shell:

进入Spark安装目录

cd /export/server/spark

代码语言:javascript复制
##直接使用spark-shell,默认使用local[*]

bin/spark-shell

## 或

bin/spark-shell --master local[2]

spark-shell说明

1.直接使用./spark-shell

表示使用local 模式启动,在本机启动一个SparkSubmit进程

2.还可指定参数 --master,如:

spark-shell --master local[N] 表示在本地模拟N个线程来运行当前任务

spark-shell --master local[*] 表示使用当前机器上所有可用的资源

3.不携带参数默认就是

spark-shell --master local[*]

4.后续还可以使用--master指定集群地址,表示把任务提交到集群上运行,如

./spark-shell --master spark://node01:7077,node02:7077

5.退出spark-shell

使用 :quit

本地模式启动spark-shell:

运行成功以后,有如下提示信息:

其中

创建SparkContext实例对象:sc

SparkSession实例对象:spark

启动应用监控页面端口号:4040

​​​​​​​初体验-读取本地文件

1.准备数据

vim /root/words.txt

代码语言:javascript复制
hello me you her 

hello you her

hello her 

hello

2.执行WordCount

代码语言:javascript复制
val textFile = sc.textFile("file:///root/words.txt")

val counts = textFile.flatMap(_.split(" ")).map((_,1)).reduceByKey(_   _)

counts.collect

​​​​​​​初体验-读取HDFS文件

1.准备数据

代码语言:javascript复制
上传文件到hdfs

hadoop fs -put /root/words.txt /wordcount/input/words.txt

目录如果不存在可以创建

hadoop fs -mkdir -p /wordcount/input

结束后可以删除测试文件夹

hadoop fs -rm -r /wordcount

2.执行WordCount

代码语言:javascript复制
val textFile = sc.textFile("hdfs://node1:8020/wordcount/input/words.txt")

val counts = textFile.flatMap(_.split(" ")).map((_,1)).reduceByKey(_   _)

counts.collect

counts.saveAsTextFile("hdfs://node1:8020/wordcount/output")

查看文件内容

代码语言:javascript复制
hadoop fs -text /wordcount/output/part*

​​​​​​​监控页面

每个Spark Application应用运行时,启动WEB UI监控页面,默认端口号为4040,

可以使用浏览器打开页面,

http://node1:4040/jobs/

0 人点赞