spark集成到hadoop

这篇文章是在hadoop的基础上集成spark,关于hadoop环境的搭建可以参考我之前的博文https://blog.csdn.net/wbo112/article/details/124654197?spm=1001.2014.3001.5501

本次使用的是spark-3.3.1-bin-hadoop3.tgz

ip 主机名
192.168.68.121 hadoop1
192.168.68.122 hadoop2
192.168.68.123 hadoop3

后续web 界面访问有可能直接是机器名,所以需要把IP与主机 加到本地hosts文件中

解压spark-3.3.1-bin-hadoop3.tgz到目录下

进入解压后的目录/home/hadoop/software/spark-3.3.1-bin-hadoop3

执行spark自带计算圆周率示例代码

在spark目录中执行如下代码

复制代码
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[2] \
./examples/jars/spark-examples_2.12-3.3.1.jar \
10

输出日志中有这么一句Spark web UI at http://hadoop1:4040,在spark程序运行中可以看到任务运行的各种状态(spark任务结束前面的web-ui地址也就打不开了)。

上面的示例是scala版本的示例,源码在/home/hadoop/software/spark-3.3.1-bin-hadoop3/examples/src/main/scala/org/apache/spark/examples

spark-yarn

解压spark-3.3.1-bin-hadoop3.tgz到目录下到/home/hadoop/software/spark-yarn/目录下

在spark-yarn配置文件中增加

执行如下命令

/home/hadoop/software/spark-yarn/spark-3.3.1-bin-hadoop3/conf 进入spark配置文件目录

cp spark-env.sh.template spark-env.sh 复制模板配置文件

修改spark-env.sh增加如下内容

复制代码
YARN_CONF_DIR=/home/hadoop/software/hadoop-3.2.3/etc/hadoop   #注意,这是hadoop目录

再次进入就可以将任务在yarn上运行

复制代码
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
./examples/jars/spark-examples_2.12-3.3.1.jar \
10

进入yarnweb-ui yarn也能看到执行记录

再次进入``/home/hadoop/software/spark-yarn/spark-3.3.1-bin-hadoop3/conf`

执行如下命令

cp spark-defaults.conf.template spark-defaults.conf

配置日志存储路径

复制代码
spark.eventLog.enabled          true
spark.eventLog.dir               hdfs://hadoop1:9000/directory   #这个是hdfs的地址,目录不存在,要手动创建
spark.yarn.historyServer.address=hadoop1:19889   #这个端口是spark的端口,必须没被占用
spark.history.ui.port=19889        #这个端口是spark的端口,必须没被占用

再次进入spark-env.sh配置历史服务器信息,参数信息同上

复制代码
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=19888
-Dspark.history.fs.logDirectory=hdfs://hadoop1:10020/directory
-Dspark.history.retainedApplications=30"   #指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

再次回到/home/hadoop/software/spark-yarn/spark-3.3.1-bin-hadoop3/目录执行如下命令,启动历史服务器

sbin/start-history-server.sh.

再次执行

复制代码
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
./examples/jars/spark-examples_2.12-3.3.1.jar \
10

再次进入yarn的web-ui,找到上面任务的历史执行记录。

点击这里的History,就会进入我们刚才配置的spark的历史任务的web-ui界面。如我本地是Spark Pi - Spark Jobs http://hadoop1:19889/history/application_1723817139150_0002/jobs/,就能看到spark执行信息。

相关推荐
wuhanzhanhui1 小时前
重塑供应链!2026武汉数字孪生产业展览会亮相,打造工业未来新基石
大数据·人工智能
数智化管理手记2 小时前
智能财务如何减少财务加班?智能财务落地需要哪些工具支撑?
大数据·网络·数据库·数据挖掘·精益工程
A15362553 小时前
国内好用的WMS仓储管理系统有哪些?万里牛WMS深度评测
大数据·数据库·人工智能
码云数智-园园3 小时前
2026主流SaaS小程序搭建平台对比
大数据
Elastic 中国社区官方博客5 小时前
4 个英伟达人工智能任务,1 个 Elasticsearch 接口:嵌入、聊天、completion 和重排序
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai
融智兴科技5 小时前
一张校园卡学生证,如何连接学习、生活与校园管理?
大数据·科技·物联网
Geeys6 小时前
淘宝新店一般要熬几个月?淘宝新店破周期提速实操方案
大数据·人工智能
麦兜和小可的舅舅6 小时前
从原理到实战:Linux 系统性能诊断核心指标全解析及生产系统故障分析复盘
大数据·linux·运维
阿里技术7 小时前
Agent 评测:方法论与体系设计
大数据·人工智能·算法
buligbulig7 小时前
Hadoop环境安装和集群创建
大数据·hadoop·分布式