【Spark】Spark的Standalone模式安装部署
2016-03-31 12:51
323 查看
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无password登录,Spark集群中各节点的通信须要通过ssh协议进行,这须要事先进行配置。
通过在hadoop用户的
.ssh文件夹下将其它用户的
id_rsa.pub公钥文件内容拷贝的本机的
authorized_keys文件里。就可以事先无登录通信的功能
Java环境的安装,同一时候将JAVA_HOME、CLASSPATH等环境变量放到主文件夹的
.bashrc,执行
source .bashrc使之生效
部署配置
这里配置工作须要以下几个步骤:解压Spark二进制压缩包
配置conf/spark-env.sh文件
配置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集群,然后再物理机上部署client,然后通过该client提交任务给Spark集群。因为上面介绍了Standalone分布式集群是怎样搭建的,这里仅仅需将集群上的spark文件夹拷贝过来。
最简单的Sparkclient訪问集群的方式就是通过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进入我的博客主页
相关文章推荐
- Latex图表位置修饰
- iOS layoutSubviews总结
- leetcode之counting bits改进算法
- 学习cocos2dx的内存管理
- 列表,信息资源面板设置(用户层)---表层
- Android Small插件化框架源码分析
- 第三章 进程管理笔记
- 用MarkDown来排版写作
- String类能否被继承?
- IntelliJ IDEA 15.0.2导入grails工程
- 卷积神经网络Convolution Neural Network (CNN) 原理与实现
- 唐山燃气公司改煤气表
- iOS开发-正则表达式验证手机号
- Java操作Redis
- 网站 首页那点事儿(一)
- 教你怎么解决64位Windows版Redis狂占C盘的问题.
- 调用安卓系统的时间选择器
- 实现聊天窗口动态可视区加载的listview
- 被神化的海量数据处理和高并发处理
- Android Small插件化框架源码分析