Spark Metrics配置詳解

2021-08-13 05:17:44 字數 3742 閱讀 1654

和hadoop類似,在

spark中也存在很多的metrics配置相關的引數,它是基於coda hale metrics library的可配置metrics系統,我們可以通過配置檔案進行配置,通過

spark的metrics系統,我們可以把

spark metrics的資訊報告到各種各樣的sink,比如http、jmx以及csv檔案。

在spark的metrics系統主要支援sink和source兩種,其中,sink指定metrics資訊傳送到**,每個instance可以設定乙個或多個sink(這點和flume很類似)。sink的原始碼位於org.apache.spark.metrics.sink包中;而source也是指資訊的**,它主要分為兩大類:

(1)、spark內部source,比如mastersource、workersource等,它們會接收spark元件的內部狀態;

(2)、通用source,如:jvmsource,它收集低階別的狀態。

文章目錄

2 如何使用

consolesink是記錄metrics資訊到console中。

名稱預設值

描述class

org.apache.spark.metrics.sink.consolesink

sink類

period

10輪詢間隔

unit

seconds

輪詢間隔的單位

定期的把metrics資訊匯出到csv檔案中。

名稱預設值

描述class

org.apache.spark.metrics.sink.csvsink

sink類

period

10輪詢間隔

unit

seconds

輪詢間隔的單位

directory

/tmp

csv檔案儲存的位置

可以通過jmx方式訪問mertics資訊

名稱預設值

描述class

org.apache.spark.metrics.sink.jmxsink

sink類

名稱預設值

描述class

org.apache.spark.metrics.sink.metricsservlet

sink類

path

varies*

path prefix from the web server root

sample

false

whether to show entire set of samples for histograms ('false' or 'true') |

這個在spark中預設就開啟了,我們可以在4040埠頁面的url後面加上/metrics/json檢視

名稱預設值

描述class

org.apache.spark.metrics.sink.graphitesink

sink類

host

none

graphite伺服器主機名

port

none

graphite伺服器端口

period

10輪詢間隔

unit

seconds

輪詢間隔的單位

prefix

empty string

prefix to prepend to metric name

由於licene的限制,預設沒有放到預設的build裡面,如果需要使用,需要自己編譯(這個會在後面專門介紹)

名稱預設值

描述class

org.apache.spark.metrics.sink.gangliasink

sink類

host

none

ganglia 伺服器的主機名或multicast group

port

none

ganglia伺服器的埠

period

10輪詢間隔

unit

seconds

輪詢間隔的單位

ttl1

ttl of messages sent by ganglia

mode

multicast

ganglia網路模式('unicast' or 'multicast')

在spark安裝包的$spark_home/conf路徑下有個metrics.properties檔案(如果不存在,請將metrics.properties.template重新命名為metrics.properties即可),spark啟動的時候會自動載入它。

當然,如果想修改配置檔案位置,我們可以使用-dspark.metrics.conf=***進行修改。

下面我將簡單地介紹如何使用spark metrics。我只想簡單地開啟consolesink,我們可以如下配置:

*.sink.console.class=org.apache.spark.metrics.sink.consolesink

*.sink.console.period=10

*.sink.console.unit=seconds

period是consolesink的輪詢週期,unit是consolesink的輪詢週期時間單位。上面是配置所有的例項,如果想單獨配置可以如下:

master.sink.console.class=org.apache.spark.metrics.sink.consolesink

master.sink.console.period=15

master.sink.console.unit=seconds

這個配置可以覆蓋通用配置符(也就是上面的*號)

我們為master、worker、driver和executor開啟jvm source,如下:

master.source.jvm.class=org.apache.spark.metrics.source.jvmsource

worker.source.jvm.class=org.apache.spark.metrics.source.jvmsource

driver.source.jvm.class=org.apache.spark.metrics.source.jvmsource

executor.source.jvm.class=org.apache.spark.metrics.source.jvmsource

當然,我們還可以自定義source,這個需要繼承自org.apache.spark.metrics.source.source類。關於如何自定義source,我這裡不介紹了,需要的同學可以去參照spark原始碼,比如jvmsource類的實現。

Spring Cloud中Feign配置詳解

到目前為止,小夥伴們對feign的使用已經掌握的差不多了,我們在前文也提到feign是對ribbon和hystrix的整合,那麼在feign中,我們要如何配置ribbon和hystrix呢?帶著這兩個問題,我們來看看本文的內容。1.使用spring cloud搭建服務註冊中心 2.使用spring ...

GitHub Eclipse配置使用教程詳解

1.egit外掛程式 開啟eclipse,git需要eclipse授權,通過網頁是無法 egit的安裝包的。在選單欄依次開啟eclipse help install new software add,name欄中輸入egit,location欄中輸入 點選ok進行 完成後會提示重啟eclipse 如...

xml mysql配置詳解 xml配置檔案詳解

1 bean的基本屬性配置 注意 在整合struts和hibernate框架時,需要將action的scope設為 prototype 可以配置全域性的自動裝配型別,在beans內,設定default autowire 2,團隊協作開發 import標籤 3 bean的繼承 parent屬性 如果c...