【Spark】Ubuntu16.04 spark 集群安装 (standalone模式)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/w1992wishes/article/details/82716004

一、前言

目前 Apache Spark 支持三种分布式部署方式,分别是:

  • standalone
  • spark on mesos
  • spark on YARN

其中,第一种类似于MapReduce 1.0所采用的模式,内部实现了容错性和资源管理,后两种则是未来发展的趋势,部分容错性和资源管理交由统一的资源管理系统完成:让Spark运行在一个通用的资源管理系统之上,这样可以与其他计算框架,比如MapReduce,公用一个集群资源,最大的好处是降低运维成本和提高资源利用率(资源按需分配)。

具体的区别这里先不讨论,本篇主要介绍 standalone 模式的集群搭建。

二、准备机器

192.168.11.72 master
192.168.11.73 spark1
192.168.11.74 spark2
192.168.11.75 spark3
192.168.11.76 spark4

将上述映射关系分别保存到 每台机器的 /etc/hosts 文件中。

三、创建 spark 用户,配置免密登录

创建 spark 用户:

sudo adduser spark

设置好密码后一路回车即可。

然后配置免密登录:

https://www.cnblogs.com/ALittleMoreLove/p/9455407.html

四、安装 JDK

给所有的机器都安装好 jdk,配置好环境变量:

vi ~/.bashrc

```
export JAVA_HOME=/usr/local/jdk1.8.0_181
export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
```

source ~/.bachrc 后可以验证:

java -version 

```
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
```

五、具体安装步骤

5.1、下载 Spark 安装包

到 spark 官方页面下载 spark:http://spark.apache.org/downloads.html

将下载好的安装包上传到 master:192.168.11.72。

解压:

tar -zxvf spark-2.3.1-bin-hadoop2.7.tgz -C /home/spark/
mv spark-2.3.1-bin-hadoop2.7 spark

5.2、配置 spark

进入 spark conf 配置目录下:

cd /home/spark/spark/conf/
mv spark-env.sh.template spark-env.sh
vi spark-env.sh

在该文件下添加:

export JAVA_HOME=/usr/local/jdk1.8.0_181
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077

SPARK_MASTER_IP 指明主节点。

mv slaves.template slaves
vi slaves

在该文件中添加子节点所在的位置(Worker节点):

spark1
spark2
spark3
spark4

5.3 节点复制

配置好 spark 后,将整个 spark 目录拷贝到其他节点上(注意节点的路径必须和master一样,否则master启动集群回去从节点中对应目录中去启动 work,不一致会报 No such file or directory)。

scp -r /home/spark/spark spark@spark1:/home/spark
scp -r /home/spark/spark spark@spark2:/home/spark
scp -r /home/spark/spark spark@spark3:/home/spark
scp -r /home/spark/spark spark@spark4:/home/spark

5.4 启动节点

接着就可以启动了:在 master 节点,执行 spark 目录下 sbin 目录下的 start-all.sh 脚本即可:

/home/spark/spark/sbin/start-all.sh

可见 spark 的启动与 hadoop 无关,如果是采取 spark on YARN 的模式,则需要启动 yarn 集群。

启动后执行 jps 命令,主节点上有 Master 进程,其他子节点上有 Work 进程,也可以登录 Spark 管理界面查看集群状态:http://master:8080/

六、运行 spark 自带的例子

/home/spark/spark/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/home/spark/spark/examples/jars/spark-examples_2.11-2.3.1.jar 100
  • –class 应用程序的主类,含包名
  • –master master 的地址,提交任务到哪里执行
  • –executor-memory 每个 executor 的内存
  • –total-executor-cores 所有 executor 总共的核数(仅仅在 mesos 或者 standalone 下使用)
  • –executor-core 每个 executor 的核数(仅仅在 mesos 或者 standalone 下使用)

猜你喜欢

转载自blog.csdn.net/w1992wishes/article/details/82716004