网站首页 > 博客文章 正文
承接上一篇文档《Spark案例练习-打包提交》
将spark应用运行在yarn集群上
官网地址:http://spark.apache.org/docs/2.0.2/running-on-yarn.html
1. 在spark-env.sh中配置HADOOP_CONF_DIR 或者 YARN_CONF_DIR
HADOOP_CONF_DIR=/opt/bigdata/hadoop-2.7.3/etc/hadoop
2. 启动hdfs和yarn
./sbin/start-yarn.sh
3. 测试运行
浏览器访问master:8088
在8088端口下(yarn的UI下)查看下面语句的效果:
默认部署模式是client
执行命令
./bin/spark-submit \
--class 全包.类名 \
--master yarn \
jar包位置
这里遇到了一个错误
ERROR cluster.YarnClientSchedulerBackend: Yarn application has already exited with state FINISHED!
查了一下是因为内存分配不够导致的yarn强行关闭
往yarn-site.xml中加入
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
重启hadoop即可解决
在8088端口下(yarn的UI下)查看下面语句的效果:
运行代码
用cluster模式运行
./bin/spark-submit \
--class 全包.类名\
--master yarn \
--deploy-mode cluster \
jar包位置
集群部署的时候如果不成功,将logpvuv.jar放在hadoop-2.7.3/share/hadoop/common/lib或者/hadoop-2.7.3/share/hadoop/yarn/lib下面(我成功了,所以没有做这一步)
4. 在standalone集群运行spark应用的时候,指定一些资源(内存、CPU)
client模式执行的命令:
./bin/spark-submit \
--class 全包.LogPVAndUVCount \
--master spark://master:7070 \
/opt/modules/jar/logpvuv.jar
1、--driver-memory 指定driver的内存,client模式一般不指定,cluster部署模式的话,如果你在代码中调用rdd.collect,并且rdd的数据量很大的话,那么可以指定一下该参数
2、--executor-memory 指定每个executor的内存,Default: 1G
3、--total-executor-cores 指定所有的executor总共需要的core
4、--executor-cores 每个executor需要的core的数量
命令:
./bin/spark-submit \
--class 全包.LogPVAndUVCount \
--master spark://master:7070 \
--total-executor-cores 3 \
--executor-cores 1 \
--executor-memory 512m \
/opt/modules/jar/logpvuv.jar
对应我们得到配置,这里要注意一下资源分配的问题
total-executor-cores*executor-memory不可以大于分配给spark的内存
如果大于会出警告,程序会一直暂停
注意:
每个executor的内存不可以超过单个Worker节点上所有可使用的内存
单个executor的core数也不可以超过单个Worker节点上所有可使用的core数
部署模式是cluster模式时,查看UI界面的变化(对比client模式):
./bin/spark-submit \
--class 全包.LogPVAndUVCount \
--master spark://master:6066 \
--deploy-mode cluster \
--driver-cores 2 \
/opt/modules/jar/logpvuv.jar
对比可以发现,cluster会根据你所给定的core数自动分配内存
我配置的内存是2g,所以每个core所分配到的内存是1024MB(1G)
还有几个参数:
在yarn集群的时候
--num-executors 指定executor的数量
--executor-cores 指定每个executor的core的数量
例如:
假设spark应用RDD有50分区
--num-executors 10
--executor-cores 5
二、Spark on yarn Job History服务配置
1.前提:yarn-site.xml中开启日志聚集功能
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs</value>
</property>
2. 配置并且启动spark的job history server
./sbin/start-history-server.sh
查看HistoryServer这个进程
对应的UI界面:http://master:18080/
3. 启动yarn的job history server
先进入hadoop的安装目录
执行
./sbin/mr-jobhistory-daemon.sh start historyserver
查看JobHistoryServer进程
对应的UI界面:
http://master:19888/jobhistory
4.修改spark应用的配置文件spark-default.conf
spark.yarn.historyServer.address http://master:18080
5.测试一个spark on yarn(前面的例子执行查看下就好)
./bin/spark-submit \
--class 全包.类名\
--master yarn \
jar包位置
三、如果要加载配置
参数:--properties-file xxxx.properties(文件名)
xxxx.properties里面的内容示例:
spark.yarn.historyServer.address(空格)http://master:18080
注意:这个配置文件中的属性必须是以spark开头
配置文件的写法 spark.* xxxx属性值,属性名称与属性值中间用一个空格隔开
猜你喜欢
- 2024-10-14 国庆期间别偷懒,大数据平台只差YARN了
- 2024-10-14 为什么我们从Yarn切换到pnpm(yarn设置淘宝镜像)
- 2024-10-14 flink的yarn模式部署(flink的三种部署方案)
- 2024-10-14 yarn的安装和使用(yarn安装教程)
- 2024-10-14 yarn 的安装和使用(yarn安装教程)
- 2024-10-14 全面解析:Hadoop基础——YARN(hadoop yarn工作原理)
- 2024-10-14 Node简史及好书推荐(nodejs相关书籍)
- 2024-10-14 大数据之-Hadoop3.x_Yarn_常用命令---大数据之hadoop3.x_0147
- 2024-10-14 大数据系列文章之Yarn组件及其执行流程
- 2024-10-14 Yarn简单入门介绍(yarn使用及安装)
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 356℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)