引发了一个可配置的指标体系支持大量的下沉,包括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配置指标和验证他们正确地写。