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配置指标和验证他们正确地写。


这篇文章有用吗?