Apache火花CSV指標保存到DBFS位置

持續引發CSV指標在DBFS水槽的位置。

寫的亞當Pavlacka

去年發表在:2022年3月4日

引發了一個可配置的指標體係支持大量的下沉,包括CSV文件。

在本文中,我們將向您展示如何配置一個磚集群使用CSV水槽和堅持這些指標DBFS位置。

創建一個init腳本

所有的配置在一個init腳本完成。

init腳本做以下三件事:

  1. 配置集群生成CSV指標司機和工人。
  2. 寫CSV度量來臨時,本地文件夾。
  3. 從臨時上傳CSV指標,本地文件夾選擇DBFS位置。
刪除

請注意

CSV數據保存在本地被上傳到DBFS位置之前因為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配置指標和驗證他們正確地寫。