和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...