背景:

之前我已经搭好了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集群相关推荐

  1. Spark基础学习笔记06:搭建Spark On YARN集群

    文章目录 零.本讲学习目标 一.Spark On YARN架构 (一)client提交方式 (二)cluster提交方式 二.搭建Spark On YARN集群 (一)搭建Spark Standalo ...

  2. 搭建Spark On YARN集群

    文章目录 零.本讲学习目标 一.Spark On YARN架构 (一)client提交方式 (二)cluster提交方式 二.搭建Spark On YARN集群 (一)搭建Spark Standalo ...

  3. Spark基础学习笔记:搭建spark on yarn 集群

    一.Spark On YARN架构 Spark On YARN模式遵循YARN的官方规范,YARN只负责资源的管理和调度,运行哪种应用程序由用户自己实现,因此可能在YARN上同时运行MapReduce ...

  4. 搭建Spark on Yarn集群碰到的那些坑

    说在前面 最近因为项目需要,处理的数据集变大了,用单机处理起来比较费劲,虽然也能得到结果,但是总觉得应该尝试一下新技术.说新技术,其实也不新了.第一次在公众号上写文章,先极简地自我介绍一下.我叫哈明, ...

  5. Spark On YARN 集群安装部署

    2019独角兽企业重金招聘Python工程师标准>>> 最近毕设需要用到 Spark 集群,所以就记录下了部署的过程.我们知道 Spark 官方提供了三种集群部署方案: Standa ...

  6. Spark on Yarn集群多Application并行执行

    在工作中遇到向Spark集群提交多个任务,并且这些任务是需要同时执行的.但是遇到很多错误,所以把遇到的问题记录下来. 修改hadoop/etc/hadoop/yarn-site.xml文件 需要添加的 ...

  7. 阿里云学生机搭建spark、hadoop集群(踩坑之路)

    服务器:三台阿里云学生机(三个账号,都在华南1c) 系统:ubuntu 一.通过外网ip登录服务器 需要修改安全组,出入方向都一样,都加入这两条.为何加这两条后续慢慢说明. 第一条安全组功能之一就是为 ...

  8. Flink集群搭建以及企业级yarn集群搭建

    Flink下载: Apache Flink: 下载 根据自己想要下载的版本,下载指定版本我下载的是7.2hadoop版本 解压后启动: 本地启动 [root@node01 flinkhadoop1.7 ...

  9. 基于centos7 搭建storm1.2.3集群过程

    1.环境准备 申请3台测试环境,IP地址如下: 192.168.162.201 m162p201 192.168.162.202 m162p202 192.168.162.203 m162p203 1 ...

最新文章

  1. java实现登录注册案例_Java基于IO版实现用户登录注册的案例
  2. k2677场效应管参数引脚_场效应管参数大全2.doc
  3. Flutter开发之BottomSheetDialog选择组件-5(44)
  4. BZOJ.4144.[AMPPZ2014]Petrol(Kruskal重构树)
  5. 30年货币翻了300倍!如何能跑赢印钞机?
  6. 循环小数是分数集合吗_人教版小学数学三年级上册 分数的简单计算 教案、课件,公开课视频...
  7. java 解码 encodeuri_encodeURIComponent编码后java后台的解码
  8. UGUI教程基本介绍
  9. 浅学DSP原理及应用
  10. java前后端分离怎么测试,前后端分离如何提高开发测试效率
  11. Excel如何根据身份证号码提取出性别
  12. 程序员被空姐骗到香港做传销!
  13. LeetCode 741. 摘樱桃 (网格DP)
  14. 陕西勉县旅游策划方案——打造三国之都!
  15. 微信生态圈的发展分析
  16. ELementUI select多选下拉框获取选中项的全部属性
  17. 循环嵌套之经典图形打印(C语言版)
  18. Chrome浏览器查看网页源代码的几种方法
  19. 办公室计算机oa,办公自动化oa是计算机
  20. 语义分割丨PSPNet源码解析「训练阶段」

热门文章

  1. 51nod.1916 购物
  2. 范宇的Python学习笔记
  3. 如何找到一个网站的icon
  4. Elastic Search创建文档和更新文档
  5. 测试枕头软件,占卜测试: 哪个枕头抱起来最舒服? 测测看你目前的生活状态如何...
  6. windows平台下使用cmake构建静态lib库以及使用静态lib库gtest项目
  7. 抽取文本数据(TSV文件的抽取)
  8. arduino计时器程序
  9. centos os u盘启动盘_Mac上制作Centos7系统U盘安装盘(示例代码)
  10. 第二周 Day 3—— Python容器