Apache spark 结构化流媒体性能指标?

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可以

在尝试了一些监视结构化流性能、输入/输出指标的方法之后,我发现一种可靠的方法是附加streamingQueryListener以输出streamingQueryProgress以获取输入/输出编号

除了斯巴克人

有没有更好的方法来监控结构化流媒体性能

将查询过程输出到文件或卡夫卡的最佳方式是什么


比较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文件中列出的对象名称和属性创建度量