Spark如何用累加器Accumulator收集日志

Spark如何用累加器Accumulator收集日志

Spark任务的实际运算是交由众多executor来执行的,如果再执行算子内部打印日志,是需要到对应的executor上才能看到。当不知道对应executor的情况下就需要挨个查询日志,是否不方便。是否有办法可以收集所有executor上的日志内容打印在driver上呢?这样就可以直接在stdout里看到所有日志。

Accumulator

spark累加器Accumulator是spark提共的两种共享变量(广播变理和累加器)的一种。为什么要使用共享变量呢?通常情况下,当向Spark操作(如map,reduce)传递一个函数时,它会在一个远程集群节点上执行,它会使用函数中所有变量的副本。这些变量被复制到所有的机器上,远程机器上并没有被更新的变量会向驱动程序回传,也就是说有结果Driver程序是拿不到的!共享变量就是为了解决这个问题。本博文介绍其中的一种累加器Accumulator。

累加器只能够增加。 只有driver能获取到Accumulator的值(使用value方法),Task(excutor)只能对其做增加操作(使用 +=)。

如何使用Accumulator收集日志

  1. 注册日志
val accumTool: AccumulatorTool = new AccumulatorTool()
SparkSession.sparkContext.register(accumTool)
  1. executor累加日志
val info = "日志内容"
accumTool.add(info)
  1. 在driver打印日志
//打印错误日志
println(s"execute error num is  ${accumTool.value.size}, accumTool message:")
var logNum = 1
for ((k,v) <- accumTool.value if logNum <= 10) {
   	
	println(k + "," + v)
   	logNum += 1
   	}

相关推荐

  1. Spark如何累加器Accumulator收集

    2024-02-02 23:36:02       54 阅读
  2. spark累加器

    2024-02-02 23:36:02       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-02 23:36:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-02 23:36:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-02 23:36:02       87 阅读
  4. Python语言-面向对象

    2024-02-02 23:36:02       96 阅读

热门阅读

  1. unity打开外部exe,并将其置顶

    2024-02-02 23:36:02       52 阅读
  2. Kubernetes实战(二十二)-Pod时区修改

    2024-02-02 23:36:02       58 阅读
  3. C# Newtonsoft.Json解析json笔记

    2024-02-02 23:36:02       46 阅读
  4. 【Git系列】修改远程分支名

    2024-02-02 23:36:02       58 阅读
  5. virtualBox虚拟机安装ubuntu后的必要配置

    2024-02-02 23:36:02       59 阅读
  6. 备考蓝桥杯每日一题——C++分支结构“ABC”

    2024-02-02 23:36:02       46 阅读
  7. 原子计数器缓冲区 Atomic Counter Buffers

    2024-02-02 23:36:02       43 阅读
  8. 蓝桥杯-景区导游-DFS

    2024-02-02 23:36:02       41 阅读
  9. 代码随想录算法训练营第二十四天|77. 组合

    2024-02-02 23:36:02       47 阅读
  10. 安卓之代码检查工具优劣分析以及应用场景

    2024-02-02 23:36:02       52 阅读
  11. 【Python】websockets库的介绍及用法

    2024-02-02 23:36:02       48 阅读