【Spark】Spark的Standalone模式安装部署

原创 2015年07月10日 11:19:41

Spark运行模式

Spark 有很多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则运行在集群中,目前能很好的运行在 Yarn和 Mesos 中,当然 Spark 还有自带的 Standalone 模式,对于大多数情况 Standalone 模式就足够了,如果企业已经有 Yarn 或者 Mesos 环境,也是很方便部署的。

  • local(本地模式):常用于本地开发测试,本地还分为local单线程和local-cluster多线程;
  • standalone(集群模式):典型的Mater/slave模式,不过也能看出Master是有单点故障的;Spark支持ZooKeeper来实现 HA
  • on yarn(集群模式): 运行在 yarn 资源管理器框架之上,由 yarn 负责资源管理,Spark 负责任务调度和计算
  • on mesos(集群模式): 运行在 mesos 资源管理器框架之上,由 mesos 负责资源管理,Spark 负责任务调度和计算
  • on cloud(集群模式):比如 AWS 的 EC2,使用这个模式能很方便的访问 Amazon的 S3;Spark 支持多种分布式存储系统:HDFS 和 S3

Spark Standalone集群部署

准备工作

  • 这里我下载的是Spark的编译版本,否则需要事先自行编译
  • Spark需要Hadoop的HDFS作为持久化层,所以在安装Spark之前需要安装Hadoop,这里Hadoop的安装就不介绍了,给出一个教程Hadoop安装教程_单机/伪分布式配置
  • 实现创建hadoop用户,Hadoop、Spark等程序都在该用户下进行安装
  • ssh无密码登录,Spark集群中各节点的通信需要通过ssh协议进行,这需要事先进行配置。通过在hadoop用户的.ssh目录下将其他用户的id_rsa.pub公钥文件内容拷贝的本机的authorized_keys文件中,即可事先无登录通信的功能
  • Java环境的安装,同时将JAVA_HOME、CLASSPATH等环境变量放到主目录的.bashrc,执行source .bashrc使之生效

部署配置

这里配置工作需要以下几个步骤:

  1. 解压Spark二进制压缩包
  2. 配置conf/spark-env.sh文件
  3. 配置conf/slave文件

下面具体说明一下:

  • 配置Spark的运行环境,将spark-env.sh.template模板文件复制成spark-env.sh,然后填写相应需要的配置内容:
export SPARK_MASTER_IP=hadoop1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORDER_INSTANCES=1
export SPARK_WORKER_MEMORY=3g

其他选项内容请参照下面的选项说明:

# Options for the daemons used in the standalone deploy mode:
# - SPARK_MASTER_IP, to bind the master to a different IP address or hostname
# - SPARK_MASTER_PORT / SPARK_MASTER_WEBUI_PORT, to use non-default ports for the master
# - SPARK_MASTER_OPTS, to set config properties only for the master (e.g. "-Dx=y")
# - SPARK_WORKER_CORES, to set the number of cores to use on this machine
# - SPARK_WORKER_MEMORY, to set how much total memory workers have to give executors (e.g. 1000m, 2g)
# - SPARK_WORKER_PORT / SPARK_WORKER_WEBUI_PORT, to use non-default ports for the worker
# - SPARK_WORKER_INSTANCES, to set the number of worker processes per node
# - SPARK_WORKER_DIR, to set the working directory of worker processes
# - SPARK_WORKER_OPTS, to set config properties only for the worker (e.g. "-Dx=y")
# - SPARK_HISTORY_OPTS, to set config properties only for the history server (e.g. "-Dx=y")
  • conf/slave文件用户分布式节点的配置,这里只需要在slave文件中写入该节点的主机名即可

  • 将以上内容都配置好了,将这个spark目录拷贝到各个节点scp -r spark hadoop@hadoop2:~

  • 接下来就可以启动集群了,在Spark目录中执行sbin/start-all.sh,然后可以通过netstat -nat命令查看端口7077的进程,还可以通过浏览器访问hadoop1:8080了解集群的概况

Spark Client部署

Spark Client的作用是,事先搭建起Spark集群,然后再物理机上部署客户端,然后通过该客户端提交任务给Spark集群。
由于上面介绍了Standalone分布式集群是如何搭建的,这里只需将集群上的spark文件夹拷贝过来。
最简单的Spark客户端访问集群的方式就是通过Spark shell的方式:bin/spark-shell --master spark://hadoop1:7077这样就可以访问集群了。
这样在浏览器的Spark集群界面上就可以看到Running Applications一栏中有Spark shell的应用在执行。

Spark Standalone伪分布式部署

伪分布式是在一台机器上进行部署来模拟分布式的集群,这里部署的过程和Standalone集群的部署是类似的,事前的工作都是一样的,这里只是在配置文件中做相应的修改就可以了。

这里还是配置这两个文件:

配置conf/spark-env.sh文件
配置conf/slave文件

  • 修改spark-env.sh文件,修改master的ip,这里主机名和用户ip分别在/etc/hostname/etc/hosts文件中进行配置
export SPARK_MASTER_IP=jason
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORDER_INSTANCES=1
export SPARK_WORKER_MEMORY=3g
  • slave文件中,填写自己的主机名,比如我的主机名jason

转载请注明作者Jason Ding及其出处
GitCafe博客主页(http://jasonding1354.gitcafe.io/)
Github博客主页(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)
百度搜索jasonding1354进入我的博客主页

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

配置Spark standalone集群启动

前言 想在本地提交spark程序,在网上找了一些文章。在本地提交的前提就是,spark以集群的方式启动。于是想以简单的standalone方式启动,但在启动的时候遇到了一些问题,下面把过程和问题总...

spark 集群搭建 详细步骤

最近好不容易搞到了三台测试机,可以用来搭建spark集群搞模型。本宝宝开心得不行,赶紧行动,把spark集群搭起来,模型跑起来。1.搭建hadoop集群hadoop的hdfs文件系统是整个生态圈的基础...

Spark安装部署

Spark是UC Berkeley AMPLab开发的类MapRed计算框架。MapRed框架适用于batch job,但是由于它自身的框架限制,第一,pull-based heartbeat作业调度...

Spark入门及安装部署

1. Spark概念 Spark是UC Berkeley AMP lab开发的一个集群计算的框架,类似于Hadoop,但有很多的区别(详细见3.4)。最大的优化是让计算任务的中间结果可以存储在内存...

Spark的安装和配置

1  本文是在hadoop正确安装的前提的条件上进行的  Hadoop安装请参考:hadoop的安装和配置.docx 2  下载程序包 http://spark.apache.org/download...

Hadoop-2.7.2集群的搭建——集群学习日记

目前在我的实验室上有三台Linux主机,因为需要参加一个关于spark数据分析的比赛,所以眼见那几台服务器没有人用,我们团队就拿来配置成集群。具体打算配置如下的集群

安装Scala-2.11.7——集群学习日记

在安装Spark之前,我们需要安装Scala语言的支持。在此我选择的是scala- scala-2.11.7。

基于Spark 2.0.0搭建Hive on Spark环境

如何让HIVE 2.2.0使用Spark 2.0.0计算框架。
  • Jsin31
  • Jsin31
  • 2017-04-06 09:31
  • 1910

基于腾讯Centos7云服务器搭建SVN版本控制库

基于腾讯Centos7云服务器搭建SVN版本控制库 最近在和小伙伴组队参加一个关于人工智能的比赛,无奈不知道怎么处理好每个人的代码托管问题,于是找到了晚上免费svn托管服务器的服务,但是所给的免费...

Spark学习笔记-安装部署与运行实例

首先解压scala,本次选用版本scala-2.11.1 [hadoop@centos software]$ tar -xzvf scala-2.11.1.tgz [hadoop@centos s...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)