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

相关推荐
wudl55661 小时前
flink 1.20 物化表(Materialized Tables)
大数据·flink·linq
InfiSight智睿视界2 小时前
AI 技术助力汽车美容行业实现精细化运营管理
大数据·人工智能
8K超高清4 小时前
高校巡展:中国传媒大学+河北传媒学院
大数据·运维·网络·人工智能·传媒
amhjdx4 小时前
政策东风下:卓玛儿童级健康腻子引领行业升级
大数据
TDengine (老段)5 小时前
TDengine 字符串函数 CONCAT_WS 用户手册
android·大数据·数据库·时序数据库·tdengine·涛思数据
TTGGGFF5 小时前
人工智能:大语言模型或为死胡同?拆解AI发展的底层逻辑、争议与未来方向
大数据·人工智能·语言模型
杂家7 小时前
Hadoop完全分布式部署(超详细)
大数据·hadoop·分布式
BD_Marathon7 小时前
【Hadoop】hadoop3.3.1完全分布式配置
大数据·hadoop·分布式
Ashlee_code8 小时前
BSS供应商:电信与金融领域的幕后支撑者
大数据·网络·金融·系统架构·跨境·金融机构·场外期权
筑梦之人10 小时前
Spark-3.5.7文档3 - Spark SQL、DataFrame 和 Dataset 指南
spark