当前位置: 首页 > news >正文

配置Spark历史服务器,轻松查看任务记录

在大数据处理中,Spark是一个强大的分布式计算框架。但当Spark服务重启后,之前的运行记录就会消失,给我们排查问题和分析任务执行情况带来不便。这时,配置Spark历史服务器就显得尤为重要,它能帮助我们保存和查看历史任务记录。下面就来详细介绍如何配置Spark历史服务器。

一、准备工作

在开始配置之前,需要确保HDFS服务处于开启状态,因为我们会把历史任务的记录保存在HDFS集群文件中。

二、具体配置步骤

         1. 停止Spark集群

                进入`/opt/module/spark - standalone/sbin`目录,运行命令`./stop - all.sh`,停止当前正在运行的Spark集群。这一步是为了在后续修改配置文件时,避免出现冲突。

         2. 修改spark - default.conf文件

                找到`/opt/module/spark - standalone/conf/spark - default.conf.template`文件,将其名称修改为`spark - default.conf` 。

                然后在文件中补充以下两个设置: ``` spark.eventLog.enabled true spark.eventLog.dir hdfs://hadoop100:8020/directory ```

                这里`spark.eventLog.enabled`设置为`true`,表示启用事件日志记录功能;`spark.eventLog.dir`指定了历史任务相关信息的保存目录,是HDFS上的`/directory`文件夹 。

                需要注意的是,要确保这个目录存在,并且HDFS服务正常运行。

         3. 启动HDFS服务并创建目录

                运行`start - dfs.sh`启动Hadoop的HDFS服务。

                可以通过命令行(如`hdfs dfs - mkdir - p hdfs://hadoop100:8020/directory` )或者在`hadoop100:9870`的Web页面操作来创建`directory`目录。 

         4. 修改spark - env.sh文件

                在`spark - env.sh`文件中添加以下配置: ``` export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://hadoop100:8020/directory" ``` 这一步是为历史服务器指定日志存储目录,使其能够正确读取和展示任务历史记录。

         5. 分发配置文件

                使用`xsync /opt/module/spark - standalone/conf/`命令,将修改后的配置文件分发到集群中的其他机器上,保证整个集群配置的一致性。 

         6. 重新启动Spark集群

                在`/opt/module/spark - standalone/sbin`目录下,运行`./start - all.sh`命令,重新启动Spark集群。

         7. 启动历史服务器

                在相同目录下,运行`./start - history - server.sh`命令,启动Spark历史服务器。启动后,可以检查`spark - standalone/logs`目录下的日志,查看历史服务器的启动情况是否正常。

         8. 查看效果

                此时,通过浏览器访问`hadoop100:18080`端口,正常情况下应该暂时看不到任务记录,因为还没有提交新的任务。

         9. 验证配置

                重新提交一个新的Spark任务,然后再次回到`hadoop100:18080`端口对应的页面,这时就应该能够看到刚刚提交的任务记录了。 

三、总结

通过以上一系列步骤,我们成功配置了Spark历史服务器。这样在后续的工作中,无论是排查任务执行失败的原因,还是分析任务的运行效率,都可以方便地通过历史服务器查看相关记录,大大提高了工作效率,也让我们对Spark任务的管理更加得心应手。

http://www.xdnf.cn/news/97327.html

相关文章:

  • Ubuntu18.04 升级最新版本Cmake
  • 氢气传感器在燃料电池中的应用解析
  • Spark与Hadoop之间的联系与区别
  • 使用Python将YOLO的XML标注文件转换为TXT文件格式
  • 面向高可靠场景的RISC-V低功耗MCU硬件安全设计
  • 服务器如何修复SSL证书错误?
  • 重塑智慧出行新生态,德赛西威全新战略愿景发布
  • 使用 VSCode 编写 Markdown 文件
  • onlyoffice历史版本功能实现,版本恢复功能,编辑器功能实现 springboot+vue2
  • Flutter 环境搭建
  • Milvus(4):创建 Collections
  • Axure按钮设计分享:打造高效交互体验的六大按钮类型
  • 网络设备配置实战:交换机与路由器的入门到精通
  • Pytest教程:为什么Pytest要用插件模式?
  • Docker核心技术精讲:从入门到企业级实战
  • 0802api设计和实战-网络ajax请求1-react-仿低代码平台项目
  • SQL注入漏洞中会使用到的函数
  • 时序数据库 TDengine 助力石油石化业务, 平滑接替 Oracle 数据库
  • React propsTypes使用方式
  • MyBatis-Plus分页插件的使用
  • Python常用的第三方模块之【jieba库】支持三种分词模式:精确模式、全模式和搜索引擎模式(提高召回率)
  • React组件测试完全指南:从入门到实践
  • 精益数据分析(16/126):掌握关键方法,探寻创业真谛
  • 【Pandas】pandas DataFrame mod
  • 位置编码学习笔记
  • Linux:进程地址空间
  • 【LangChain4j】AI 第一弹:LangChain4j 的理解
  • 32单片机——GPIO寄存器
  • 05/06-Java入门-HelloWorld和编程工具的使用
  • c语言指针3