[Spark]-结构化流之监控&故障恢复篇

6 流的监控以及故障恢复

  6.1.流的运行时数据

     结构化流启动后返回的 StreamingQuery 对象.    

    val query = df.writeStream.format("console").start()   // get the query object

    query.id          // get the unique identifier of the running query that persists across restarts from checkpoint data

    query.runId       // get the unique id of this run of the query, which will be generated at every start/restart

    query.name        // get the name of the auto-generated or user-specified name

    query.explain()   // print detailed explanations of the query

    query.stop()      // stop the query

    query.awaitTermination()   // block until query is terminated, with stop() or with error

    query.exception       // the exception if the query has been terminated with error

    query.recentProgress  // an array of the most recent progress updates for this query

    query.lastProgress    // the most recent progress update of this streaming query

  6.2 交互式(同步)监控

    可以直接获取活动查询的当前状态和指标使用 streamingQuery.lastProgress() 和 streamingQuery.status()

    lastProgress() 返回一个 StreamingQueryProgress 对象  它有流的最后一个触发器中取得的progress的全部信息 - 处理了哪些数据,处理率是多少,延迟等等

    streamingQuery.recentProgress 返回最后几个进度的 array

    streamingQuery.status() 返回一个 StreamingQueryStatus 对象 提供有关的信息立即执行的查询 - 触发器是否 active ,数据是否正在处理等

  6.3 异步监控

    在sparkSession上附加一个 StreamingQueryListener.

    一旦你使用 sparkSession.streams.attachListener() 附加你的自定义 StreamingQueryListener 对象,当您启动查询和当有活动查询有进度时停止时,您将收到 callbacks (回调)

  6.4 故障恢复

    如果发生 failure or intentional shutdown (故障或故意关机),您可以恢复之前的查询的进度和状态,并继续停止的位置.(通过 checkpointing and write ahead logs (检查点和预写入日志)完成)

    通过配置 checkpoint location (检查点位置)查询,将保存所有进度信息(即,每个触发器中处理的偏移范围)和正在运行的 aggregates (聚合) 

    aggDF
      .writeStream
      .outputMode("complete")
      .option("checkpointLocation", "path/to/HDFS/dir")
      .format("memory")
      .start()

  

原文地址:https://www.cnblogs.com/NightPxy/p/9278892.html

时间: 2024-09-30 22:55:42

[Spark]-结构化流之监控&故障恢复篇的相关文章

[Spark]-结构化流之用法篇

4.用法 结构化流使用Datasets和DataFrames.从Spark2.0开始,Spark-SQL中的Datasets和DataFrames,就已经能很好表示静态(有界)数据,动态(无界)数据 4.1 数据源 结构化流提供了四种不中断数据源 file-system,kafka,socket.rate-source 4.1.1 socket 从一个socket连接中读取 UTF-8 的文本数据. <=注意这是一种不可容错的数据源,建议仅在测试环境中使用. 配置参数: host  连接地址  

[Spark]-结构化流之初始篇

1.什么是结构化流. 结构化流(Structured Streaming),是一种基于Spark-SQL引擎构建的,可容错的,可扩展的流处理引擎. 它以微批量计算的形式来表达流式计算,随着流式数据持续到达,它能持续的进行处理并更新最终计算结果. 它使用Spark-SQL带来的丰富的API,来表示流聚合(streaming aggregations),事件时间窗口( event-time windows),流到批处理连接(stream-to-batch joins)等,最终在同一个引擎(优化的Sp

[Spark]-结构化流之输出篇

5.结构化流的输出 一旦定义好了streaming DataFrame/Dataset的最终结果,剩下的就是一些计算输出了.为此,必须使用 DataStreamWriter通过 Dataset.writeStream() 返回.此时必须以下一个或多个 输出落地 的详细信息:  Data format, location 等等 输出模式(Output mode) 查询名称(Query name)  可选,指定用于标识的查询的唯一名称 触发器间隔(Trigger interval):可选地,指定触发

[Spark]-结构化数据查询之数据源篇

7. 数据源 Spark-SQL 支持通过Dataframe接口对各种数据源进行操作 各种数据源的加载&保存 数据转换(relational transformations) 注册临时视图(temporary view),来允许SQL的形式直接对临时视图进行操作 7.1  数据源加载 Spark-SQL的默认数据源为parquet(spark.sql.sources.default设置),一些数据源加载的例子如下: /** * 加载parquet数据源 */ spark.read.load(&qu

spark结构化数据处理:Spark SQL、DataFrame和Dataset

本文讲解Spark的结构化数据处理,主要包括:Spark SQL.DataFrame.Dataset以及Spark SQL服务等相关内容.本文主要讲解Spark 1.6.x的结构化数据处理相关东东,但因Spark发展迅速(本文的写作时值Spark 1.6.2发布之际,并且Spark 2.0的预览版本也已发布许久),因此请随时关注Spark SQL官方文档以了解最新信息. 文中使用Scala对Spark SQL进行讲解,并且代码大多都能在spark-shell中运行,关于这点请知晓. 概述 相比于

【文智背后的奥秘】系列篇——结构化抽取平台

版权声明:本文由文智原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/91 来源:腾云阁 https://www.qcloud.com/community 随着大数据时代的到来,一个大规模生成.分享.处理以及应用数据的时代正在开启.如果能将互联网上异源异构的非结构化或半结构化数据转换为更易处理的结构化数据,可以极大的降低获取数据的门槛,为信息检索和数据挖掘提供基础,更好的挖掘数据中蕴藏的价值. 单纯考虑网页这种半结构化数据

Hadoop经典案例Spark实现(七)——日志分析:分析非结构化文件

相关文章推荐 Hadoop经典案例Spark实现(一)--通过采集的气象数据分析每年的最高温度 Hadoop经典案例Spark实现(二)--数据去重问题 Hadoop经典案例Spark实现(三)--数据排序 Hadoop经典案例Spark实现(四)--平均成绩 Hadoop经典案例Spark实现(五)--求最大最小值问题 Hadoop经典案例Spark实现(六)--求最大的K个值并排序 Hadoop经典案例Spark实现(七)--日志分析:分析非结构化文件 1.需求:根据tomcat日志计算ur

Spark SQL是处理结构化的数据

Spark SQL是处理结构化的数据,可以存储在二维表中,类似数据库中的表一样存储数据 Spark1.x val sqlContext = new SparkContext(conf) val sqlContext = new SQLContext(sc) //将RDD和Schema信息关联到一起,1,RDD和case class 2,RDD和StructType //case class Person将RDD中的数据转换成case class 属性相对应的类型,然后设置到case class中

【Spark深入学习 -10】基于spark构建企业级流处理系统

----本节内容------- 1.流式处理系统背景 1.1 技术背景 1.2 Spark技术很火 2.流式处理技术介绍 2.1流式处理技术概念 2.2流式处理应用场景 2.3流式处理系统分类 3.流式处理技术关键技术 3.1流式处理系统管道构建 3.2流式处理系统关键技术 3.3用户行为分析系统介绍 4.问题答疑 5.参考资料 --------------------- 1.流式处理技术 1.1 技术背景 业务驱动技术发展,脱了了业务的技术,最多就是一个研究性的东西,流式处理技术的火爆源于业内