centos7 搭建Spark On Yarn集群
背景:
之前我已经搭好了hadoop3和hive3,但是了解hive3.1.2只能匹配spark2.4版本,所以我这次安装spark2.4.5。
Hive3 Hadoop3
首先保证hadoop集群正常启用。
我的机子:10.0.2.4是node1(master),10.0.2.15是node2(slave),10.0.2.5是node3(slave),先配置node1.
hosts文件配置和ssh免密登录等问题看我之前搭建hadoop集群的内容,这里不再强调。
1、把下好的spark-2.4.5-bin-hadoop2.7.tgz放到node1的/opt/spark,然后解压:
spark2.4.5下载https://archive.apache.org/dist/spark/spark-2.4.5/
cd /opt/spark
tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz
2、配置 spark
①spark-env.sh
cd /opt/spark/spark-2.4.5-bin-hadoop2.7/conf
mv spark-env.sh.template spark-env.sh
vi spark-env.shHADOOP_CONF_DIR=/opt/hadoop/hadoop-3.3.2/etc/hadoop
YARN_CONF_DIR=/opt/hadoop/hadoop-3.3.2/etc/hadoop
JAVA_HOME=/opt/java/jdk1.8.0_321SPARK_MASTER_HOST=node1
SPARK_MASTER_PORT=7077
SPARK_MASTER_WEBUI_PORT=8080
SPARK_WORKER_CORES=1
SPARK_WORKER_MEMORY=1g
SPARK_WORKER_PORT=7078
SPARK_WORKER_WEBUI_PORT=8081
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://node1:9000/spark/eventLogs/
-Dspark.history.fs.cleaner.enabled=true"
②slaves
mv slaves.template slaves
vi slaves删除localhost 新增
node2
node3
③spark-defaults.conf
mv spark-defaults.conf.template spark-defaults.conf
vi spark-defaults.confspark.eventLog.enabled true
spark.eventLog.dir hdfs://node1:9000/spark/eventLogs/ #spark日志目录
spark.eventLog.compress true
spark.yarn.historyServer.address node1:18080
spark.history.ui.port 18080
spark.history.fs.logDirectory hdfs://node1:9000/spark/eventLogs/
spark.yarn.jars hdfs://node1:9000/spark/apps/jars/* #运行spark任务需要的jar包目录
④log4j.properties
mv log4j.properties.template log4j.properties
vi log4j.propertieslog4j.rootCategory=WARN, console # 只修改这一行
⑤在node2、node3创建/opt/spark目录,发送配置到2个slave机器
scp -r /opt/spark/spark-2.4.5-bin-hadoop2.7/ root@node2:/opt/spark/
scp -r /opt/spark/spark-2.4.5-bin-hadoop2.7/ root@node3:/opt/spark/
3、配置hadoop,2个slave机器node2、node3都要同步配置
cd /opt/hadoop/hadoop-3.3.2/etc/hadoop
vi yarn-site.xml<property><name>yarn.log.server.url</name><value>http://node1:19888/jobhistory/logs</value>
</property>
<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value>
</property>
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property>
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property>
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property>
4、配置spark环境变量,可不配
vi /etc/profileexport SPARK_HOME=/opt/spark/spark-2.4.5
export PATH=$SPARK_HOME/bin/:$SPARK_HOME/sbin/:$PATHsource /etc/profile
5、创建spark日志目录,配置SparkJar
创建spark日志目录
就是spark-defaults.conf的spark.eventLog.dir hdfs://node1:9000/spark/eventLogs/
执行命令hdfs dfs -mkdir -p /spark/eventLogs/
配置SparkJar,就是spark-defaults.conf里的spark.yarn.jars hdfs://node1:9000/spark/apps/jars/*
强烈建议配置一下,因为这样可以避免每次提交spark任务时需要指定jar包并上传到hadoop,会很费时间,提前把jar包环境准备好,配置如下:
hdfs dfs -mkdir -p /spark/apps/jars/ #jar包存放目录
hdfs dfs -put /opt/spark/spark-2.4.5-bin-hadoop2.7/jars/* /spark/apps/jars/
这里还有一个问题需要注意,随着提交的任务变化,可能hdfs上现有的jar不满足任务运行,会导致报莫名其妙的错误,后期可能需要不断上传jar包到hdfs上。(本人刚吃过亏才来补的这句话)
6、启动
①重启hadoop集群,在node1操作:
cd /opt/hadoop/hadoop-3.3.2/sbin
./stop-all.sh
./start-all.sh另外启动日志服务:
./mr-jobhistory-daemon.sh start historyserver
②启动spark集群,在node1操作:
cd /opt/spark/spark-2.4.5-bin-hadoop2.7/sbin./start-all.sh另外启动spark日志服务:
./start-history-server.sh
都启动成功后,在node1敲一下jps看一下进程:
JobHistoryServer是hadoop的日志服务,HistoryServer是spark的日志服务,Master是spark的主节点。
在node2和node3敲一下jps:
Worker是spark的从节点,其实我的node1也有Worker是因为我把slaves配置文件也加上了node1.
7、验证测试
①测试spark
/opt/spark/spark-2.4.5-bin-hadoop2.7/bin/spark-submit --master yarn --class org.apache.spark.examples.SparkPi /opt/spark/spark-2.4.5-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.5.jar 10
如果不报错出现 Pi is roughly 3.1423111423111423 则运行成功。
②测试日志
至于我们配置的JobHistoryServer和HistoryServer也可以验证一下:
浏览器输入 node1:18080,此时进入spark的HistoryServer的web页面。
点击上图圈红地方,进到这个job的详情页:
再点击上图圈红地方,查看任务执行:
最后再点上图圈红的stdout或stderr,会跳到配置的node1:19888,这里是hadoop的job日志
其实JobHistoryServer和HistoryServer的关系我不是很清楚,只是大概配通了流程,不了解的可以单独搜history相关自己去看看。
我是个大数据小白,是一名普通java后端,最近在研究hadoop全家桶,只为记录心得,spark搞定了之后再研究spark on hive。
centos7 搭建Spark On Yarn集群相关推荐
- Spark基础学习笔记06:搭建Spark On YARN集群
文章目录 零.本讲学习目标 一.Spark On YARN架构 (一)client提交方式 (二)cluster提交方式 二.搭建Spark On YARN集群 (一)搭建Spark Standalo ...
- 搭建Spark On YARN集群
文章目录 零.本讲学习目标 一.Spark On YARN架构 (一)client提交方式 (二)cluster提交方式 二.搭建Spark On YARN集群 (一)搭建Spark Standalo ...
- Spark基础学习笔记:搭建spark on yarn 集群
一.Spark On YARN架构 Spark On YARN模式遵循YARN的官方规范,YARN只负责资源的管理和调度,运行哪种应用程序由用户自己实现,因此可能在YARN上同时运行MapReduce ...
- 搭建Spark on Yarn集群碰到的那些坑
说在前面 最近因为项目需要,处理的数据集变大了,用单机处理起来比较费劲,虽然也能得到结果,但是总觉得应该尝试一下新技术.说新技术,其实也不新了.第一次在公众号上写文章,先极简地自我介绍一下.我叫哈明, ...
- Spark On YARN 集群安装部署
2019独角兽企业重金招聘Python工程师标准>>> 最近毕设需要用到 Spark 集群,所以就记录下了部署的过程.我们知道 Spark 官方提供了三种集群部署方案: Standa ...
- Spark on Yarn集群多Application并行执行
在工作中遇到向Spark集群提交多个任务,并且这些任务是需要同时执行的.但是遇到很多错误,所以把遇到的问题记录下来. 修改hadoop/etc/hadoop/yarn-site.xml文件 需要添加的 ...
- 阿里云学生机搭建spark、hadoop集群(踩坑之路)
服务器:三台阿里云学生机(三个账号,都在华南1c) 系统:ubuntu 一.通过外网ip登录服务器 需要修改安全组,出入方向都一样,都加入这两条.为何加这两条后续慢慢说明. 第一条安全组功能之一就是为 ...
- Flink集群搭建以及企业级yarn集群搭建
Flink下载: Apache Flink: 下载 根据自己想要下载的版本,下载指定版本我下载的是7.2hadoop版本 解压后启动: 本地启动 [root@node01 flinkhadoop1.7 ...
- 基于centos7 搭建storm1.2.3集群过程
1.环境准备 申请3台测试环境,IP地址如下: 192.168.162.201 m162p201 192.168.162.202 m162p202 192.168.162.203 m162p203 1 ...
最新文章
- java实现登录注册案例_Java基于IO版实现用户登录注册的案例
- k2677场效应管参数引脚_场效应管参数大全2.doc
- Flutter开发之BottomSheetDialog选择组件-5(44)
- BZOJ.4144.[AMPPZ2014]Petrol(Kruskal重构树)
- 30年货币翻了300倍!如何能跑赢印钞机?
- 循环小数是分数集合吗_人教版小学数学三年级上册 分数的简单计算 教案、课件,公开课视频...
- java 解码 encodeuri_encodeURIComponent编码后java后台的解码
- UGUI教程基本介绍
- 浅学DSP原理及应用
- java前后端分离怎么测试,前后端分离如何提高开发测试效率
- Excel如何根据身份证号码提取出性别
- 程序员被空姐骗到香港做传销!
- LeetCode 741. 摘樱桃 (网格DP)
- 陕西勉县旅游策划方案——打造三国之都!
- 微信生态圈的发展分析
- ELementUI select多选下拉框获取选中项的全部属性
- 循环嵌套之经典图形打印(C语言版)
- Chrome浏览器查看网页源代码的几种方法
- 办公室计算机oa,办公自动化oa是计算机
- 语义分割丨PSPNet源码解析「训练阶段」
热门文章
- 51nod.1916 购物
- 范宇的Python学习笔记
- 如何找到一个网站的icon
- Elastic Search创建文档和更新文档
- 测试枕头软件,占卜测试: 哪个枕头抱起来最舒服? 测测看你目前的生活状态如何...
- windows平台下使用cmake构建静态lib库以及使用静态lib库gtest项目
- 抽取文本数据(TSV文件的抽取)
- arduino计时器程序
- centos os u盘启动盘_Mac上制作Centos7系统U盘安装盘(示例代码)
- 第二周 Day 3—— Python容器