/conf(CSVシンクを有効にする)にmetrics.propertiesを設定すると(以下の設定を参照)、ジョブを送信する(spark-submitを使用する)たびにメトリックが収集され、それが今、私は(上記と同じ設定を使用して)実行時にmetrics.propertiesにファイルを与えたい、と次のように私は火花提出の引数を与えたの/ tmp/実行時にspark-submitからCSVシンクメトリックファイルを取得する
# Enable CsvSink for all instances
*.sink.csv.class=org.apache.spark.metrics.sink.CsvSink
# Polling period for CsvSink
*.sink.csv.period=1
*.sink.csv.unit=minutes
# Polling directory for CsvSink
*.sink.csv.directory=/tmp/
# Worker instance overlap polling period
worker.sink.csv.period=1
worker.sink.csv.unit=minutes
にそれを保存することで動作します。
$spark_home/bin/spark-submit --files=file:///home/log_properties/metrics.properties --conf spark.metrics.conf=./metrics.properties --class com.myClass job1.jar
は、私は次の警告を取得し、私は私のmetrics.propertiesファイル内の任意のグラファイト構造を持っていない(私はちょうどmetrics.templateを使用してのみ上記のCSV設定を有効にする)
WARN graphite.GraphiteReporter: Unable to report to Graphite
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:244)
at javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:277)
at com.codahale.metrics.graphite.Graphite.connect(Graphite.java:118)
at com.codahale.metrics.graphite.GraphiteReporter.report(GraphiteReporter.java:167)
at com.codahale.metrics.ScheduledReporter.report(ScheduledReporter.java:162)
at org.apache.spark.metrics.sink.GraphiteSink.report(GraphiteSink.scala:91)
at org.apache.spark.metrics.MetricsSystem$$anonfun$report$1.apply(MetricsSystem.scala:114)
at org.apache.spark.metrics.MetricsSystem$$anonfun$report$1.apply(MetricsSystem.scala:114)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at org.apache.spark.metrics.MetricsSystem.report(MetricsSystem.scala:114)
at org.apache.spark.SparkContext$$anonfun$stop$3.apply$mcV$sp(SparkContext.scala:1715)
at org.apache.spark.util.Utils$.tryLogNonFatalError(Utils.scala:1219)
at org.apache.spark.SparkContext.stop(SparkContext.scala:1714)
at org.apache.spark.SparkContext$$anonfun$3.apply$mcV$sp(SparkContext.scala:596)
at org.apache.spark.util.SparkShutdownHook.run(ShutdownHookManager.scala:267)
at org.apache.spark.util.SparkShutdownHookManager$$anonfun$runAll$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(ShutdownHookManager.scala:239)
at org.apache.spark.util.SparkShutdownHookManager$$anonfun$runAll$1$$anonfun$apply$mcV$sp$1.apply(ShutdownHookManager.scala:239)
at org.apache.spark.util.SparkShutdownHookManager$$anonfun$runAll$1$$anonfun$apply$mcV$sp$1.apply(ShutdownHookManager.scala:239)
はそれがデフォルト設定されGraphiteに報告するために、私のmetrics.propertiesを無視しています(これはCSVシンクでのみ有効です)。
デフォルトmetrics.propertiesを使用する理由厥
--conf spark.metrics.conf=./metrics.properties
経由でこの-Dspark.metrics.conf=metrics.properties
ないようCONFを渡しますまた、 'metrics.properties'ファイルに' org.apache.spark.metrics.sink.GraphiteSink'プロパティを有効にしました。どうやら、スパークジョブは、利用できないGraphiteノードに接続しようとしています。 – Hussnain