Spark on yarn
概述
spark on yarn是spark集群模式之一,通过resourcemanager进行调度,较之standalone模式,不需要单独启动spark服务。
关于spark 的三种模式,上一篇文章(saprk zookeeper搭建spark高可用集群)中已经讲过,在此不做赘述。
本文操作的前提是已经搭建好hdfs和yarn集群。
环境
主机名 | 应用 |
---|---|
tvm13 | spark、Scala |
tvm14 | spark、Scala |
tvm15 | spark、Scala |
spark on yarn架构
基于Yarn有两种提交模式,一种是基于Yarn的yarn-cluster模式,一种是基于Yarn的yarn-client模式。使用哪种模式可以在spark-submit时通过 --deploy-mode cluster/client
指定。
工作原理
yarn cluster
- 在RM接受到申请后在集群中选择一个NM分配Container,并在Container中启动ApplicationMaster进程
- 在ApplicationMaster中初始化SparkContext
- ApplicationMaster向RM申请到Container后通知NodeManager在获得的Container中启动Executor进程
- sparkContext分配Task给Executor,Executor发送运行状态给Driver
yarn client
- 在RM接受到申请后在集群中选择一个NM分配Container,并在Container中启动ApplicationMaster进程
- driver进程运行在client中,并初始化sparkContext
- sparkContext初始化完成后与ApplicationMaster通讯,通过ApplicationMaster向RM申请Container,ApplicationMaster通知NM在获得的Container中启动executor
- sparkContext分配Task给Executor,Executor发送运行状态给Driver
比较
- sparkContext初始化不同,这也导致了Driver所在位置的不同,Yarn-Cluster的Driver是在集群的某一台NM上,Yarn-Client 的Driver运行在客户端
- 而Driver会和Executors进行通信,这也导致了Yarn-Cluster在提交App之后可以关闭Client,而Yarn-Client不可以
- 应用场景:Yarn-Cluster适合生产环境,Yarn-Client适合交互和调试。
搭建
Tips: 注意不同版本spark对hadoop和scala的版本要求。
- 下载安装包;
- 解压:
tar zxvf spark-3.0.0-bin-hadoop3.2.tgz
;
配置
spark-env.sh
export JAVA_HOME=/data/template/j/java/jdk1.8.0_201 export SCALA_HOME=/data/template/s/scala/scala-2.11.12 export HADOOP_HOME=/data/template/h/hadoop/hadoop-3.2.1 export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop export LOCAL_DIRS=/data/template/s/spark/tmp
slaves
tvm13 tvm14 tvm15
spark-defaults.sh
# http://spark.apache.org/docs/latest/configuration.html # http://spark.apache.org/docs/latest/running-on-yarn.html#configuration spark.eventLog.enabled true spark.eventLog.dir hdfs://cluster01/tmp/event/logs spark.driver.memory 2g spark.driver.cores 2 spark.serializer org.apache.spark.serializer.KryoSerializer spark.serializer.objectStreamReset 100 spark.executor.logs.rolling.time.interval daily spark.executor.logs.rolling.maxRetainedFiles 30 spark.ui.enabled true spark.ui.killEnabled true spark.ui.liveUpdate.period 100ms spark.ui.liveUpdate.minFlushPeriod 3s spark.ui.port 4040 spark.history.ui.port 18080 spark.ui.retainedJobs 100 spark.ui.retainedStages 100 spark.ui.retainedTasks 1000 spark.ui.showConsoleProgress true spark.worker.ui.retainedExecutors 100 spark.worker.ui.retainedDrivers 100 spark.sql.ui.retainedExecutions 100 spark.streaming.ui.retainedBatches 100 spark.ui.retainedDeadExecutors 100 spark.yarn.jars hdfs://cluster01/spark/jars spark.yarn.stagingDir hdfs://cluster01/spark/tmp/stagings spark.yarn.historyServer.address tvm13:18080 spark.executor.instances 2 spark.executor.memory 1g spark.yarn.containerLauncherMaxThreads 25 spark.yarn.submit.waitAppCompletion true
同步spark的jar包到hdfs
$ hdfs dfs -mkdir -p hdfs://cluster01/spark/jars $ hdfs dfs -mkdir -p hdfs://cluster01/spark/tmp/stagings $ hdfs dfs -put ./jars/* hdfs://cluster01/spark/jars/
系统环境配置
编辑 ~/.bashrc
export SPARK_HOME=/data/template/s/spark/spark-3.0.0-bin-hadoop3.2 export CLASSPATH=$SPARK_HOME/jars/:$CLASSPATH export CLASSPATH=$SPARK_HOME/yarn/:$CLASSPATH export CLASSPATH=$SPARK_HOME/:$CLASSPATH export PATH=$SPARK_HOME/bin/:$PATH export PATH=$SPARK_HOME/sbin/:$PATH alias cdspark="cd $SPARK_HOME"
使变量生效,source ~/.bashrc
。
分发
以上配置完成后,将 /path/to/spark-3.0.0-bin-hadoop3.2
分发至各个slave节点,并配置各个节点的环境变量。
无需启动!
完成!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《EXIN Lean IT系列认证课程介绍》
我们相信“Lean IT”应该成为每个企业IT组织和每个IT专业人员的工具包的一个组成部分。 精益思想提升企业对如何评估业务流程、并能识别和消除浪费以获取最具竞争力的绩效。今天,许多跨职能领域(运营、战术和战略)的IT专业人士已经或计划获得精益IT认证,以减少浪费和提高效率。 对任何组织而言,Lean IT(精益IT)代表了精益思想、方法和工具最具影响力的应用,因为现代企业依赖于信息、通信和技术。Lean IT是我们加速整个企业数字化转型的支点,因为我们人员、流程和技术能力直接决定了我们生产的产品和服务的质量和及时性。 本讲座介绍了Lean IT的起源,发展现状,和其他现代管理实践的关系(VeriSM、DevOps、Agile 等),以及EXIN Lean IT系列认证的重点。 任何对Lean IT有兴趣的IT专业人士,包括但不限于经理人(一线及总层经理、总监、CIO)、敏捷教练、PMO、技术负责人都可以从本讲座中学习收益。 讲座内容涵盖: * 什么是Lean IT(精益IT) * Lean、Lean IT之间的关系 * Lean IT和现代管理方法(DevOps、Agile、数字化管...
- 下一篇
JPress v3.2.0 发布,同时正式推出收费企业版
JPress 是一个使用 Java 开发的类似 WordPress 的产品,具有完善的模板和插件功能,并在此基础上新增了在线商城、会员中心以及和微信深度整合的功能。 到目前为止, 已经有10w+ 网站使用JPress 进行驱动,其中包括多个政府机构,200+上市公司,中科院、红十字会等。然而,JPress不仅仅只是建站,我们认为不管世界的互联网发生什么样的变化,APP、小程序都需要有网站支持,这就是我们的切入点。 所以,随着政企用户的不断增多,针对分布式、高并发、高安全等的企业级需求持续加强,JPress 针对这样用户,JPress也推出了收费的企业版,开源软件也只有推出收费的版本才是良性和健康的发展方向。 不多说,JPress从 v3.1.1 直接跳到 3.2.0,最大的原因就是推出了企业版,v3.2.0 在做了很多的提升的同时,也针对企业版做了兼容架构,但是之前的所有版本都可以平滑的升级到 v3.2.0 最新版本。 JPress v3.2.0更新内容如下: 新增:添加一个全新的插件:留言插件,方便网站使用其增强 "留言" 功能,同时方便新手作为一个参考去开发自己的插件,感谢作者@...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作