Apache spark 结构化流媒体性能指标?
在尝试了一些监视结构化流性能、输入/输出指标的方法之后,我发现一种可靠的方法是附加streamingQueryListener以输出streamingQueryProgress以获取输入/输出编号 除了斯巴克人 有没有更好的方法来监控结构化流媒体性能 将查询过程输出到文件或卡夫卡的最佳方式是什么Apache spark 结构化流媒体性能指标?,apache-spark,monitoring,metrics,spark-structured-streaming,Apache Spark,Monitoring,Metrics,Spark Structured Streaming,在尝试了一些监视结构化流性能、输入/输出指标的方法之后,我发现一种可靠的方法是附加streamingQueryListener以输出streamingQueryProgress以获取输入/输出编号 除了斯巴克人 有没有更好的方法来监控结构化流媒体性能 将查询过程输出到文件或卡夫卡的最佳方式是什么 比较spark流媒体和spark结构化流媒体的性能(速度、输入、输出记录)的有效方法是什么?其中一种方法是使用ELK stack Spark应用程序可以将jmx放入Logstash,Logstash可以
比较spark流媒体和spark结构化流媒体的性能(速度、输入、输出记录)的有效方法是什么?其中一种方法是使用ELK stack Spark应用程序可以将jmx放入Logstash,Logstash可以聚合数据,并将数据发送到ElasticSearch进行索引 Kibana能够通过可视化功能显示ElasticSearch的数据 1) 您需要在build.sbt中包含spark sql kafka依赖项, (目前,我正在使用Spark 2.2.0和Spark sql kafka 0.10) 或者包括--执行spark submit时的包
spark-submit --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.2.0
2) 为了让spark应用程序输出jmx,所有与jmx相关的行都需要在metrics.properties文件中取消注释
在spark提交过程中,指向文件目录,如下所示
--files=metrics.properties --conf spark.metrics.conf=metrics.properties
C:\elasticsearch> .\bin\elasticsearch.bat
C:\logstash> bin\logstash.bat -f .\jmx.conf
C:\kibana> .\bin\kibana.bat
3) 安装ElasticSearch、Logstash和Kibana
如果您在窗口中,启动麋鹿堆栈的方法如下所示
--files=metrics.properties --conf spark.metrics.conf=metrics.properties
C:\elasticsearch> .\bin\elasticsearch.bat
C:\logstash> bin\logstash.bat -f .\jmx.conf
C:\kibana> .\bin\kibana.bat
在jmx.conf中,需要配置jmx路径和轮询频率
input {
jmx {
path => "C:/logstash/config/jmx/"
polling_frequency => 15
type => "jmx"
nb_thread => 2
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
}
}
在jmx path的文件夹中,需要创建一个json文件来列出您希望Logstash检索的对象名称和属性。
(Logstash将根据轮询频率读取此json文件,因此Spark应用程序运行时,此json文件中的任何后续更新,Logstash都将接收,这意味着无需重新启动Logstash)
提交Spark应用程序后,您可以从jconsole中列出可用的对象名称和属性
示例文件如下所示
{
"host" : "localhost",
"port" : 9000,
"alias" : "spark.jmx.sample1",
"queries" : [
{
"object_name" : "kafka.consumer:type=consumer-metrics,client-id=*",
"attributes" : ["incoming-byte-rate","outgoing-byte-rate"],
"object_alias" : "byteRate"
},
{
"object_name" : "metrics:name=local-1528139073457.driver.spark.streaming.e6c4b9da-a7d1-479f-b28f-ba2b9b1397d0.inputRate-total",
"attrivutes" : ["Value"],
"object_alias" : "somethingTeste1"
}
]}
4) 最后,您将通过
首先,建立索引模式。(您应该看到数据索引的日期)
然后,转到visualization页面,使用从jmx json文件中列出的对象名称和属性创建度量