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执行信息。

相关推荐
武子康14 小时前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
大大大大晴天16 小时前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
武子康3 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
肌肉娃子3 天前
20260227.spark.Spark 性能刺客:千万别在 for 循环里写 withColumn
spark
武子康4 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP4 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库4 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟4 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体
B站计算机毕业设计超人4 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
计算机程序猿学长4 天前
大数据毕业设计-基于django的音乐网站数据分析管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
大数据·django·课程设计