本文给出一个示例如何监视Apache火花组件使用火花可配置的指标体系。具体地说,它显示了如何设置一个新的源和使一个水槽。
火花的详细信息组件可用于度量收集,包括水槽开箱即用的支持,遵循上面的文档链接。
这个指标收集系统是如何工作的呢?实例化后,每个执行器创建一个连接到驱动程序通过指标。
第一步是编写一个类,它扩展了源特征:
{% scala类MySource扩展来源覆盖val sourceName:字符串=“MySource”覆盖val metricRegistry: metricRegistry = new metricRegistry val FOO:直方图= metricRegistry.histogram (MetricRegistry.name (“fooHistory”)) val FOO_COUNTER: Counter = metricRegistry.counter (MetricRegistry.name (“fooCounter”))}
下一步是使下沉。在这个例子中,打印到控制台的指标:
% scala val火花:SparkSession = SparkSession .builder部分(“地方[*]”).appName . config (“spark.driver (“MySourceDemo”)。主机”、“localhost”) . config (“spark.metrics.conf。* .sink.console。类”、“org.apache.spark.metrics.sink.ConsoleSink”) .getOrCreate ()
最后一步是实例化与SparkEnv源和注册:
% scala val来源:MySource = new MySource SparkEnv.get.metricsSystem.registerSource(源)
你可以把一个完整的、可信赖的例子https://github.com/newroyker/meter。