Spark搭建

Spark集群配置

部署模式对比

模式Spark 安装机器数需启动的进程所属者应用场景
Local1Spark测试
Standalone3Master 及 WorkerSpark单独部署
Yarn1Yarn 及 HDFSHadoop混合部署

端口号

Ø Spark 查看当前 Spark-shell 运行任务情况端口号:4040(计算)

Ø Spark Master 内部通信服务端口号:7077

Ø Standalone 模式下,Spark Master Web 端口号:8081(资源)

Ø Spark 历史服务器端口号:18080

Ø Hadoop YARN 任务运行情况查看端口号:8088

spark-local

local模式就是不需要其他任何节点资源就可以在本地执行 Spark 代码的环境,一般用于教学,调试,演示等, 在 IDEA 中运行代码的环境我们称之为开发环境,不太一样。

将 spark-2.0.0-bin-hadoop3.2.tgz 文件上传到Linux 并解压缩,放置在指定位置路径中

[root@master software]# tar -zxvf spark-3.0.0-bin-hadoop2.7.tgz -C /usr/local/src/
[root@master src]# mv spark-3.0.0-bin-hadoop2.7/ spark-local

启动local环境
进入解压缩后的路径,执行如下指令

bin/spark-shell

启动成功后,可以输入网址进行 Web UI 监控页面访问

http://地址:8081

提交引用,执行jar包

bin/spark-submit --class org.apache.spark.examples.SparkPi --master local[2] ./examples/jars/spark-examples_2.12-3.0.0.jar 10

–class 表示要执行程序的主类,此处可以更换为咱们自己写的应用程序

–master local[2] 部署模式,默认为本地模式,数字表示分配的虚拟CPU 核数量

spark-examples_2.12-3.0.0.jar 运行的应用类所在的 jar 包,实际使用时,可以设定为咱们自己打的 jar 包

数字 10 表示程序的入口参数,用于设定当前应用的任务数量

spark-standalone

local 本地模式毕竟只是用来进行练习演示的,真实工作中还是要将应用提交到对应的集群中去执行,这里我们来看看只使用 Spark 自身节点运行的集群模式,也就是我们所谓的独立部署(Standalone)模式。Spark 的 Standalone 模式体现了经典的master-slave 模式。集群规划:

安装scala

[root@slave1 ~]# tar -zxvf scala-2.11.8.tgz /usr/local/src/

文件改名

[root@slave1 src]# mv scala-2.11.8 scala

安装spark

[root@slave1 src]# tar -zxvf spark-2.0.0-bin-hadoop2.6.tgz -C /usr/local/src/

文件改名

[root@slave1 src]# mv spark-2.0.0-bin-hadoop2.6 spark-standalone

配置环境

[root@slave1 src]# vim /etc/profile.d/my_p.sh 


export SCALA_HOME=/usr/local/src/scala
export PATH=$PATH:$SCALA_HOME/bin

export SPARK_HOME=/usr/local/src/spark-standalone
export PATH=$PATH:$SPARK_HOME/bin
export PATH=$PATH:$SPARK_HOME/sbin
//分发配置文件
[root@slave1 src]# scp /etc/profile.d/my_p.sh slave2:/etc/profile.d/
[root@slave1 src]# scp /etc/profile.d/my_p.sh slave3:/etc/profile.d/

配置文件

//修改文件名
[root@slave1 conf]# mv spark-env.sh.template  spark-env.sh

[root@slave1 conf]# vim spark-env.sh 

export JAVA_HOME=/usr/local/src/java
export HADOOP_HOME=/usr/local/src/hadoop
export HADOOP_CONF_DIR=/usr/local/src/hadoop/etc/hadoop
export SCALA_HOME=/usr/local/src/scala
export SPARK_MASTER_HOST=slave1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORKER_MEMORY=1G


[root@slave1 conf]# mv slaves.template slaves
[root@slave1 conf]# vim slaves 

slave1
slave2
slave3

img

img

分发配置好的spark文件

[root@slave1 src]# scp -r spark slave2:/usr/local/src/[root@slave1 src]# scp -r spark slave3:/usr/local/src/

启动集群(由于与Hadoop启动命令相同最好在spark的sbin目录下启动)

[root@slave1 spark]# sbin/start-all.sh//对应进程分别是master和worker

imgimgimg

进入spark-shell

[root@slave1 spark]# spark-shell 

img

提交jar包命令

bin/spark-submit \--class org.apache.spark.examples.SparkPi \--master spark://master:7077 \./examples/jars/spark-examples_2.12-3.0.0.jar \ 10#解释–class 表示要执行程序的主类–master spark://linux1:7077 独立部署模式,连接到Spark 集群spark-examples_2.12-3.0.0.jar 运行类所在的 jar 包数字 10 表示程序的入口参数,用于设定当前应用的任务数量

spark on yarn

需要先将yarn集群关闭

在yarn-site.xml下添加

yarn分配的物理内存为1GB,默认的虚拟内存与物理内存的比例为2.1。因此虚拟内存不够,增大虚拟内存与物理内存的比例即可。        //在为容器设置内存限制时,虚拟内存与物理内存之间的比率        <property>                <name>yarn.nodemanager.vmem-pmem-ratio</name>                <value>5</value>        </property>

启动集群(由于与Hadoop启动命令相同最好在spark的sbin目录下启动)

[root@slave1 spark]# sbin/start-all.sh//对应进程分别是master和worker

启动spark on yarn

[root@master flink]# spark-shell --master yarn-client

img

img

img

提交jar包命令

bin/spark-submit \--class org.apache.spark.examples.SparkPi \--master yarn \--deploy-mode cluster \./examples/jars/spark-examples_2.12-3.0.0.jar \10

spark HA

先安装好zookeeper

解压好scala和spark

进入spark/conf 更改spark-env.sh

[root@master spark]# vi conf/spark-env.sh

添加以下代码

export JAVA_HOME=/usr/local/src/javaexport SCALA_HOME=/usr/local/src/scalaexport HADOOP_HOME=/usr/local/src/hadoopexport HADOOP_CONF_DIR=/usr/local/src/hadoop/etc/hadoopexport SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/spark"export SPARK_WORKER_MEMORY=2gexport SPARK_EXECUTOR_MEMORY=2gexport SPARK_DRIVER_MEMORY=2Gexport SPARK_WORKER_CORES=2解释:SPARK_DAEMON_JAVA_OPTS:					设置所有守护进程的配置属性(例如:“dx = y”)-Dspark.deploy.recoveryMode:    表明整个集群的恢复和维护都是Zookeeper.-Dspark.deploy.zookeeper.url:   所有做HA机器,其中端口2181是默认端口。-Dspark.deploy.zookeeper.dir:   指定Spark在Zookeeper注册的信息SPARK_WORKER_CORES:							设置在这台机器上使用的核数SPARK_WORKER_MEMORY:						要设置worker必须给executor的内存总量(例如1000m, 2g)SPARK_EXECUTOR_MEMORY:					每个执行器的内存(例如1000M, 2G)(默认为1G)SPARK_DRIVER_MEMORY:						驱动程序内存(例如1000M, 2G)(默认1G)

在主节点启动集群

[root@master spark]# sbin/start-all.sh 在从节点上分别再启动master进程[root@slave1 spark]# sbin/start-master.sh [root@slave2 spark]# sbin/start-master.sh 

imgimgimg

img

spark历史服务器

在spark-defaults.conf.template文件下配置

spark.eventLog.enabled           truespark.eventLog.dir               hdfs://master:9000/spark/log

在spark-env.sh文件下配置

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://master:9000/spark/log -Dspark.history.retainedApplicaions=30"

img

在spark-defaults.conf文件下配置

spark.eventLog.enabled           truespark.eventLog.dir               hdfs://master:9000/spark/tmp

img

分发配置文件

scp conf/ slave1:/usr/local/src/spark

启动历史服务器

sbin/start-all.sh[root@master spark]# sbin/start-history-server.sh 

img

img

spark提交任务

集群提交

[root@master spark]# spark-submit  --master spark://master:7077 --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.1.1.jar 

img

yarn提交

[root@master spark]# spark-submit --master yarn --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.1.1.jar 

img

搭建Spark环境可以分为以下几个步骤: 1. **安装Java**: Spark是用Scala编写的,而Scala运行在Java虚拟机(JVM)上。因此,首先需要安装Java。可以通过以下命令检查是否已安装Java: ```sh java -version ``` 如果没有安装,可以从Oracle官网下载并安装Java。 2. **安装Scala**(可选): 虽然Spark可以通过Python(PySpark)或R接口使用,但如果你打算使用Scala编写Spark应用程序,则需要安装Scala。可以通过以下命令检查是否已安装Scala: ```sh scala -version ``` 如果没有安装,可以从Scala官网下载并安装。 3. **下载并安装Spark**: 从Apache Spark官网下载最新版本的Spark。下载完成后,解压缩文件到指定目录: ```sh tar -xzf spark-<version>-bin-hadoop<version>.tgz ``` 将解压后的目录移动到一个合适的位置,例如`/usr/local/spark`。 4. **设置环境变量**: 为了方便使用Spark命令,需要设置环境变量。在`~/.bashrc`或`~/.zshrc`文件中添加以下内容: ```sh export SPARK_HOME=/usr/local/spark export PATH=$SPARK_HOME/bin:$PATH ``` 然后,使环境变量生效: ```sh source ~/.bashrc ``` 5. **验证安装**: 打开一个新的终端窗口,输入以下命令验证Spark是否安装成功: ```sh spark-shell ``` 如果安装成功,将会看到Scala的交互式命令行界面。 6. **安装Hadoop**(可选): 如果你打算在分布式模式下使用Spark,则需要安装Hadoop。可以通过以下命令检查是否已安装Hadoop: ```sh hadoop version ``` 如果没有安装,可以从Apache Hadoop官网下载并安装。 7. **配置Spark**: 根据需要配置`$SPARK_HOME/conf`目录下的配置文件,例如`spark-env.sh`和`slaves`文件。可以通过复制模板文件并修改来配置: ```sh cp spark-env.sh.template spark-env.sh cp slaves.template slaves ``` 通过以上步骤,你应该能够成功搭建Spark环境并开始使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值