Spark部署三种方式介绍:YARN模式、Standalone模式、HA模式
参考自:Spark部署三种方式介绍:YARN模式、Standalone模式、HA模式
http://www.aboutyun.com/forum.php?mod=viewthread&tid=7115
(出处: about云开发)
1.Yarn模式由谁来作为客户端提交作业给YARN?
2.SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true ./sbt/sbt assembly的作用是什么?
3.Standalone 模式dist目录的作用是什么?
4.recoveryDirectory最好是能够使用一个nfs的原因是什么?
Spark的部署让人有点儿困惑,有些需要注意的事项,本来我已经装成功了YARN模式的,但是发现了一些问题,出现错误看日志信息,完全看不懂那个错误信息,所以才打算翻译Standalone的部署的文章。第一部分,我先说一下YARN模式的部署方法。第二部分才是Standalone的方式。
我们首先看一下Spark的结构图,和hadoop的差不多。
1.YARN模式
采用Yarn模式的话,其实就是把spark作为一个客户端提交作业给YARN,实际运行程序的是YARN,就不需要部署多个节点,部署一个节点就可以了。
把从官网下载的压缩包在linux下解压之后,进入它的根目录,没有安装git的,先执行yum install git安装git
1)运行这个命令: SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true ./sbt/sbt assembly
就等着吧,它会下载很多jar包啥的,这个过程可能会卡死,卡死的就退出之后,重新执行上面的命令。
2)编辑conf目录下的spark-env.sh(原来的是.template结尾的,cp一份命名为spark-env.sh),添加上HADOOP_CONF_DIR参数
- HADOOP_CONF_DIR=/etc/hadoop/conf
3)运行一下demo看看,能出结果 Pi is roughly 3.13794
- SPARK_JAR=./assembly/target/scala-2.9.3/spark-assembly_2.9.3-0.8.1-incubating-hadoop2.2.0.jar \
- ./spark-class org.apache.spark.deploy.yarn.Client \
- --jar examples/target/scala-2.9.3/spark-examples-assembly-0.8.1-incubating.jar \
- --class org.apache.spark.examples.SparkPi \
- --args yarn-standalone \
- --num-workers 3 \
- --master-memory 1g \
- --worker-memory 1g \
- --worker-cores 1
2.Standalone模式
下面我们就讲一下怎么部署Standalone,参考页面是http://spark.incubator.apache.or ... ark-standalone.html。
这里我们要一个干净的环境,刚解压出来的,运行之前的命令的时候不能再用了,会报错的。
1)打开make-distribution.sh,修改SPARK_HADOOP_VERSION=2.2.0,然后执行./make-distribution.sh, 然后会生成一个dist目录,这个目录就是我们要部署的内容。官方推荐是先把master跑起来,再部署别的节点,大家看看bin目录下面的脚本,和hadoop的差不多的。行,那就先启动master,执行
- ./bin/start-master.sh
2)部署dist的目录到各个节点,然后通过这个命令来连接master节点
- ./spark-class org.apache.spark.deploy.worker.Worker spark://IP:PORT
3)然后在主节点查看一下http://localhost:8080 ,查看一下子节点是否在这里,如果在,就说明连接成功了。
4) 部署成功之后,想要在上面部署程序的话,在执行./spark-shell的时候,要加上MASTER这个参数。
- MASTER=spark://IP:PORT ./spark-shell
3.High Alailability(高可用)
Spark采用Standalone模式的话,Spark本身是一个master/slaves的模式,这样就会存在单点问题,Spark采用的是zookeeper作为它的active-standby切换的工具,设置也很简单。一个完整的切换需要1-2分钟的时间,这个时候新提交的作业会受到影响,之前提交到作业不会受到影响。
在spark-env.sh添加以下设置:
- //设置下面三项JVM参数,具体的设置方式在下面
- //spark.deploy.recoveryMode=ZOOKEEPER
- //spark.deploy.zookeeper.url=192.168.1.100:2181,192.168.1.101:2181
- // /spark是默认的,可以不写
- //spark.deploy.zookeeper.dir=/spark
- export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop.Master:2181,hadoop.SlaveT1:2181,hadoop.SlaveT2:2181"
这里就有一个问题了,集群里面有多个master,我们连接的时候,连接谁?用过hbase的都知道是先连接的zookeeper,但是Spark采用的是另外的一种方式,如果我们有多个master的话,实例化SparkContext的话,使用spark://host1:port1,host2:port2这样的地址,这样它会同时注册两个,一个失效了,还有另外一个。
如果不愿意配置高可用的话,只是想失败的时候,再恢复一下,重新启动的话,那就使用FILESYSTEM的使用,指定一个目录,把当前的各个节点的状态写入到文件系统。
- spark.deploy.recoveryMode=FILESYSTEM
- spark.deploy.recoveryDirectory=/usr/lib/spark/dataDir
当 stop-master.sh来杀掉master之后,状态没有及时更新,再次启动的时候,会增加一分钟的启动时间来等待原来的连接超时。
recoveryDirectory最好是能够使用一个nfs,这样一个master失败之后,就可以启动另外一个master了。
Spark部署三种方式介绍:YARN模式、Standalone模式、HA模式的更多相关文章
- #Eclipse web工程 部署 三种方式 3
Eclipse web工程 部署 三种方式 3.热部署 在Eclipse中,实现 修改一个.java文件或者.jsp文件甚至是配置文件,不需要重启WEB服务器的前提下让修改生效,实现tomcat自动加 ...
- Eclipse web工程 部署 三种方式 2
Eclipse web工程 部署 三种方式 2.插件 tomcat插件下载: http://www.eclipsetotale.com/tomcatPlugin.html 解压缩后, com.sysd ...
- Eclipse web工程 部署 三种方式 1
Eclipse web工程 部署 三种方式 1.run on 前提: 安装 好 eclipse.jdk.tomcat 然后 新建一个 web工程 注意此处Default output folder 最 ...
- Hive快捷查询:不启用Mapreduce job启用Fetch task三种方式介绍
如果查询表的某一列,Hive中默认会启用MapReduce job来完成这个任务,如下: hive>select id,name from m limit 10;--执行时hive会启用MapR ...
- 011-HQL中级1-Hive快捷查询:不启用Mapreduce job启用Fetch task三种方式介绍
如果你想查询某个表的某一列,Hive默认是会启用MapReduce Job来完成这个任务,如下: hive; Total MapReduce jobs Launching Job out since ...
- Web服务器处理动态程序三种方式及Apache配置
模块.CGI.FastCGI三种方式介绍 以PHP脚本为例: 模块方式是指Web服务器通过libphp5.so模块调用PHP服务,模块将相关函数嵌入Web服务请求处理流程,不需要额外解释器进程.注意, ...
- 【Struts2】Struts2获取session的三种方式
1.Map<String,Object> map = ActionContext.getContext().getSession(); 2.HttpSession session = S ...
- 关于tomcat部署应用的三种方式
关于tomcat部署应用虽然不是一个经常的操作,因为一旦选择了一种部署方式,我们其他的应用就会不经大脑的使用这种既定模式, 如果不使用这种部署方式,但是对于其他的部署方式不是很清楚的话,很容易抓瞎,所 ...
- 在Tomcat中部署web项目的三种方式
搬瓦工搭建SS教程 SSR免费节点:http://www.xiaokeli.me 在这里介绍在Tomcat中部署web项目的三种方式: 1.部署解包的webapp目录 2.打包的war文件 3.Man ...
随机推荐
- OC编程之道-创建对象之生成器模式
生成器模式也叫建造者模式,一般是用来构造复杂对象的一种模式.client(客户)-director(指导者)-builder(构造者)-product(产品). 生成器模式能帮助构建设计部件与表现的各 ...
- ios 导航栏的显示和隐藏切换
从简单的一个没有导航栏的界面A push到另一个有导航栏的界面 B,在界面A的逻辑中加入下面逻辑: 屏幕快照 2016-03-30 上午10.35.24.png 这样完美的处理了这个场景变换需求.引起 ...
- 与你相遇好幸运,Sailsjs查询
sailsjs 原生查询 ------------------------------------- Lands.native(function(err, collection) { if (err) ...
- js通过location.search来获取页面传来的参数
这篇文章主要介绍了通过window.location.search来获取页面传来的参数,经测试是OK的 ? 1 2 3 4 5 function GetQueryString(name) { var ...
- 关于Qt creator 无法使用fcitx输入中文的问题折腾
环境: 系统ubuntu16.04amd64,qt5.4.2 安装完qt5.4后,在编写代码时,发现无法输入中文,离开qt creator 就立刻正常.原因似乎是qt对fcitx支持. 解决方法我是参 ...
- 网络知识学习2---(IP地址、子网掩码)(学习还不深入,待完善)
紧接着:网络知识学习1 1.IP地址 IP包头的结构如图 A.B.C网络类别的IP地址范围(图表) A.B.C不同的分配网络数和主机的方式(A是前8个IP地址代表网络,后24个代表主机:B是16 ...
- 【转】Java Web 项目获取运行时路径 classpath
Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...
- 目标跟踪_MeanShift
找到一些关于目标跟踪的资料 http://blog.csdn.net/jinshengtao/article/details/30258833 http://blog.sina.com.cn/s/bl ...
- 在DrawingVisual上绘制圆形的进度条,类似于IOS系统风格。
1.说明:在WPF中,文件下载时需要显示下载进度,由于系统自带的条型进度条比较占用空间,改用圆形的进度条,需要在DrawingVisual上呈现. 运行的效果如图: private Point Get ...
- XVI Open Cup named after E.V. Pankratiev. GP of SPB
A. Bubbles 枚举两个点,求出垂直平分线与$x$轴的交点,答案=交点数+1. 时间复杂度$O(n^2\log n)$. #include<cstdio> #include<a ...