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

相关推荐
FII工业富联科技服务2 小时前
GPT-6 Astra发布,Agent的竞争开始从“会调用工具”走向“完成完整工作”
大数据·人工智能·gpt·架构·机器人·制造
QYR-分析3 小时前
蓝海赛道高速扩容!全球小型观察ROV市场格局、细分场景与发展趋势分析
大数据·运维·云计算
Elastic 中国社区官方博客3 小时前
Elasticsearch Python DSL 客户端开发
大数据·数据库·python·elasticsearch·搜索引擎·全文检索
hughnz4 小时前
石油工程的端到端数字化转型:演化还是革命
大数据·人工智能·科技
龙亘川4 小时前
旅游强国建设|一网统管智慧旅游服务模块,赋能节假日文旅数字化治理
大数据·数据库·人工智能·科技·智慧城市·旅游
Databend5 小时前
只看 PASS 会骗你,6 条 Agent Trace 里的 Coding Agent 评测真相
大数据·数据库·agent
数字新视界5 小时前
动环监控可视化技术在机房管理智能化中的实际应用剖析
大数据·人工智能·数据中心·微模块机房·模块化机房
朴实赋能5 小时前
AI拒答机制实战:心理咨询危机识别Agent三层防护、五级分层与六类智能体拆解
大数据·人工智能·多agent协同·心理咨询ai·心理危机识别·ai拒答机制·隐私匿名化
龙亘川5 小时前
智慧景区建设实践|文旅热度持续走高,景区如何把流量稳稳转化为口碑?
大数据·人工智能·科技·信息可视化·智慧城市