引發了一個可配置的指標體係支持大量的下沉,包括CSV文件。
在本文中,我們將向您展示如何配置一個磚集群使用CSV水槽和堅持這些指標DBFS位置。
創建一個init腳本
所有的配置在一個init腳本完成。
init腳本做以下三件事:
- 配置集群生成CSV指標司機和工人。
- 寫CSV度量來臨時,本地文件夾。
- 從臨時上傳CSV指標,本地文件夾選擇DBFS位置。
定製的示例代碼,然後運行它在筆記本電腦上創建一個init腳本集群。
示例代碼創建一個init腳本:
% python dbutils.fs.put (" / < init-path > /指標。sh”、“”“# !/bin/bash mkdir / tmp / csv sudo bash - c”貓< < EOF > > /磚/火花/ dbconf / log4j /師傅/指標。* .sink.csv.class = org.apache.spark.metrics.sink屬性。CsvSink spark.metrics.staticSources。真正的spark.metrics.executorMetricsSource啟用。真正的spark.executor.processTreeMetrics啟用。真正的spark.sql.streaming啟用。master.source.jvm metricsEnabled如此。類org.apache.spark.metrics.source。JvmSource worker.source.jvm。類org.apache.spark.metrics.source。JvmSource * .sink.csv。5 * .sink.csv時期。* .sink.csv單位秒。目錄/ tmp / csv / worker.sink.csv。5 worker.sink.csv時期。單位秒EOF貓“sudo bash - c”< < EOF > > /磚/火花/ conf /指標。* .sink.csv.class = org.apache.spark.metrics.sink屬性。CsvSink spark.metrics.staticSources。真正的spark.metrics.executorMetricsSource啟用。真正的spark.executor.processTreeMetrics啟用。真正的spark.sql.streaming啟用。driver.source.jvm metricsEnabled如此。類org.apache.spark.metrics.source。JvmSource executor.source.jvm。class org.apache.spark.metrics.source.JvmSource *.sink.csv.period 5 *.sink.csv.unit seconds *.sink.csv.directory /tmp/csv/ worker.sink.csv.period 5 worker.sink.csv.unit seconds EOF" cat <<'EOF' >> /tmp/asynccode.sh #!/bin/bash DB_CLUSTER_ID=$(echo $HOSTNAME | awk -F '-' '{print$1"-"$2"-"$3}') MYIP=$(hostname -I) if [[ ! -d /dbfs//${DB_CLUSTER_ID}/metrics-${MYIP} ]] ; then sudo mkdir -p /dbfs/ /${DB_CLUSTER_ID}/metrics-${MYIP} fi while true; do if [ -d "/tmp/csv" ]; then sudo cp -r /tmp/csv/* /dbfs/ /$DB_CLUSTER_ID/metrics-$MYIP fi sleep 5 done EOF chmod a+x /tmp/asynccode.sh /tmp/asynccode.sh & disown """, True)
取代< init-path >DBFS位置你想使用保存init腳本。
取代< metrics-path >DBFS位置你想使用保存CSV指標。
集群級init腳本
一旦您創建了init腳本集群,您必須配置一個集群級init腳本。
驗證CSV指標寫正確
重新啟動集群並運行一個示例作業。
檢查DBFS位置,你為CSV配置指標和驗證他們正確地寫。