我正在尝试可视化Zeppelin中的火花结构化流。我能够使用内存接收器(spark.apache)来实现。但是对于大数据量,这不是可靠的解决方案。有什么更好的解决方案?
示例实现或演示会有所帮助。
谢谢
Rilwan
答案 0 :(得分:0)
感谢您提出问题!!拥有2年以上开发Spark监控工具的经验,我认为我将能够解决您的疑问!
当数据以流形式触发时,有两种类型的处理。
离散流或DStream :在这种模式下,spark为您提供数据
以RDD格式,您必须编写自己的逻辑来处理
RDD。
专家:
1.如果要在保存流数据之前进行一些处理,与DataFrame相比,RDD是最好的处理方式。
2. DStream为您提供了一个不错的Streaming UI,它以图形方式显示已处理了多少数据。检查此链接-https://spark.apache.org/docs/2.2.0/streaming-programming-guide.html#monitoring-applications
缺点:
1.处理原始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中读取文件,并绘制自己的图形。