方法監視Apache Spark組件的示例Spark可配置度量係統.具體來說,它展示了如何設置新源和啟用接收器。
有關可用於指標收集的Spark組件(包括開箱即用的接收器)的詳細信息,請參見上麵的文檔鏈接。
這個指標收集係統是如何工作的?在實例化之後,每個執行程序都會創建一個到驅動程序的連接來傳遞度量。
方法的第一步是編寫一個擴展源特征:
%scala類MySource extends Source {override val sourceName: String = "MySource" override val metricRegistry: metricRegistry = new metricRegistry val FOO: Histogram = metricRegistry. Histogram (metricRegistry. name("fooHistory")) val FOO_COUNTER: Counter = metricRegistry. Counter (metricRegistry. name("fooCounter"))}
下一步是啟用接收器。在這個例子中,指標被打印到控製台:
%scala val spark: SparkSession = SparkSession .builder .master("local[*]") . appname ("MySourceDemo") .config("spark.driver. SparkSession .builder .master ").config("spark.metrics.conf.*.sink.console.class", "org.apache.spark.metrics.sink.ConsoleSink") . getorcreate ()
最後一步是實例化源代碼並在SparkEnv中注冊它:
%scala val source: MySource = new MySource SparkEnv.get.metricsSystem.registerSource(source)
您可以查看一個完整的、可構建的示例https://github.com/newroyker/meter.