【发布时间】:2020-01-30 14:53:50
【问题描述】:
我正在尝试在 Zeppelin 中可视化 Spark 结构化流。我能够使用内存接收器(spark.apache)来实现。但它不是高数据量的可靠解决方案。更好的解决方案是什么?
示例实现或演示会有所帮助。
谢谢,
里尔万
【问题讨论】:
标签: apache-spark streaming apache-zeppelin
我正在尝试在 Zeppelin 中可视化 Spark 结构化流。我能够使用内存接收器(spark.apache)来实现。但它不是高数据量的可靠解决方案。更好的解决方案是什么?
示例实现或演示会有所帮助。
谢谢,
里尔万
【问题讨论】:
标签: apache-spark streaming apache-zeppelin
感谢提问!!有2年以上Spark监控工具开发经验,我想我一定能解决你的疑惑!!
当数据以流的形式出现时,有两种类型的处理可用。
Discretized Stream 或 DStream:在这种模式下,spark 为您提供数据
以 RDD 格式,您必须编写自己的逻辑来处理
RDD。
优点:
1.如果你想在保存流数据之前做一些处理,RDD是比DataFrame最好的处理方式。
2. DStream 为您提供了一个不错的 Streaming UI,它以图形方式显示已处理的数据量。检查此链接 - https://spark.apache.org/docs/2.2.0/streaming-programming-guide.html#monitoring-applications
缺点:
1.处理Raw RDD不是那么方便和容易。
结构化流:在这种模式下,spark 以
DataFrame 格式,您需要提及存储/发送数据的位置。
优点:
1. Spark Streaming 带有一些预定义的源和接收器,它们很常见,95% 的现实生活场景都可以通过插入这些来解决。检查此链接 - https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html
缺点:
1. 结构化流式处理没有可用的流式处理 UI :(。尽管您可以获得指标并创建自己的 UI。检查此链接 - https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#monitoring-streaming-queries
您还可以将指标存储在一些纯文本文件中,通过spark.read.json 在 Zeppelin 中读取文件,并绘制自己的图表。
【讨论】: