Spark全分布模式的安装和配置

- 日理万妓 2022-05-08 03:10 335阅读 0赞

Spark的安装模式一般分为三种:1.伪分布模式:即在一个节点上模拟一个分布式环境,master和worker共用一个节点,这种模式一般用于开发和测试Spark程序;2.全分布模式:即真正的集群模式,master和worker部署在不同的节点之上,一般至少需要3个节点(1个master和2个worker),这种模式一般用于实际的生产环境;3.HA集群模式:即高可用集群模式,一般至少需要4台机器(1个主master,1个备master,2个worker),这种模式的优点是在主master宕机之后,备master会立即启动担任master的职责,可以保证集群高效稳定的运行,这种模式就是实际生产环境中多采用的模式。本小节来介绍Spark的全分布模式的安装和配置。

1.搭建Hadoop全分布环境

Hadoop全分布模式的搭建过程请参看文章:https://blog.csdn.net/qq_28286027/article/details/82973196

2.安装Scala

由于Scala只是一个应用软件,只需要安装在master节点即可。

2.1上传scala安装包:

/usr/local/src/scala-2.11.8

2.2解压scala安装包:

tar -zxvf scala-2.11.8.tgz

2.3环境变量配置(三台机器都做一遍):

[root@master scala-2.11.8]# vim /root/.bash_profile

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

使环境变量生效:[root@master scala-2.11.8]# source /root/.bash_profile

2.4验证Scala是否安装成功

输入scala命令,如下进入scala环境,则证明scala安装成功:

  1. # scala
  2. Welcome to Scala 2.12.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_144).
  3. Type in expressions for evaluation. Or try :help.
  4. scala>

2.4分发到从节点

scp -rp /usr/local/src/scala-2.11.8 slave1:/usr/local/src

scp -rp /usr/local/src/scala-2.11.8 slave2:/usr/local/src

3.安装spark

1.上传spark安装包

[root@master spark-2.1.0-bin-hadoop2.7]# pwd
/usr/local/src/spark-2.1.0-bin-hadoop2.7

2.解压spark安装包

# tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz

3.配置spark环境变量(三台机器都做一遍)

[root@master spark-2.1.0-bin-hadoop2.7]# vim /root/.bash_profile

SPARK_HOME=/usr/local/src/spark-2.1.0-bin-hadoop2.7
export SPARK_HOME
PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
export PATH

使环境变量生效:[root@master spark-2.1.0-bin-hadoop2.7]# source /root/.bash_profile

4.配置spark参数

4.1配置spark-env.sh文件:

  1. # cp spark-env.sh.template spark-env.sh
  2. # vim spark-env.sh

export JAVA_HOME=/usr/local/src/jdk1.8.0_162
export HADOOP_HOOME=/usr/local/src/hadoop-2.7.3
export HADOOP_CONF_DIR=/usr/local/src/hadoop-2.7.3/etc/hadoop
export SCALA_HOME=/usr/local/src/scala-2.11.8
export SPARK_MASTER_HOST=master
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORKER_MEMORY=1G

4.2配置slaves文件:

  1. # cp slaves.template slaves
  2. # vim slaves
  3. slave1
  4. slave2

4.3分发安装包给从节点:将master上配置好的Spark安装目录分别复制给两个从节点slave1和slave2,并验证是否成功。

scp -rp spark-2.1.0-bin-hadoop2.7/ slave1:/usr/local/src/

scp -rp spark-2.1.0-bin-hadoop2.7/ slave2:/usr/local/src/

4.4在master节点上启动Spark全分布模式(启动之前已经启动了hadoop)

[root@master conf]# start-all.sh
starting org.apache.spark.deploy.master.Master, logging to /usr/local/src/spark-2.1.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-master.out
slave1: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/src/spark-2.1.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave1.out
slave2: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/src/spark-2.1.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave2.out
[root@master conf]# jps
2709 SecondaryNameNode
4839 Jps
2522 NameNode
4763 Master
2863 ResourceManager

[root@slave1 ~]# jps
2288 NodeManager
2180 DataNode
2905 Jps
2846 Worker

[root@slave2 ~]# jps
2262 NodeManager
2153 DataNode
3467 Worker
3531 Jps

4.5使用浏览器监控Spark的状态:

70

4.6使用spark-shell

使用spark-shell命令进入SparkContext(即Scala环境):

  1. [root@master ~]# spark-shell
  2. Setting default log level to "WARN".
  3. ……
  4. Welcome to
  5. ____ __
  6. / __/__ ___ _____/ /__
  7. _\ \/ _ \/ _ `/ __/ '_/
  8. /___/ .__/\_,_/_/ /_/\_\ version 2.1.0
  9. /_/
  10. Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_144)
  11. Type in expressions to have them evaluated.
  12. Type :help for more information.
  13. scala>

启动了spark-shell之后,可以使用4040端口访问其Web控制台页面(注意:如果一台机器上启动了多个spark-shell,即运行了多个SparkContext,那么端口会自动连续递增,如4041,4042,4043等等):

4.7停止spark全分布式模式

  1. [root@master ~]# stop-all.sh
  2. slave2: stopping org.apache.spark.deploy.worker.Worker
  3. slave1: stopping org.apache.spark.deploy.worker.Worker
  4. stopping org.apache.spark.deploy.master.Master

Spark中常用的端口总结:

master端口:7077

master Web端口:8080

spark-shell 端口:4040

至此,Spark完全分布式环境搭建完成!

发表评论

表情:
评论列表 (有 0 条评论,335人围观)

还没有评论,来说两句吧...

相关阅读