2016-08-18 8 views
1

/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シンクでのみ有効です)。

+0

デフォルトmetrics.propertiesを使用する理由厥--conf spark.metrics.conf=./metrics.properties 経由でこの-Dspark.metrics.conf=metrics.propertiesないようCONFを渡しますまた、 'metrics.properties'ファイルに' org.apache.spark.metrics.sink.GraphiteSink'プロパティを有効にしました。どうやら、スパークジョブは、利用できないGraphiteノードに接続しようとしています。 – Hussnain

答えて

0

ええ、私はmetrics.propertiesは(私が火花を提出runディレクトリから)ローカルにファイルが、私は問題を解決しながら、私は火花提出する、すなわち --files=file:///home/log_properties/metrics.propertiesに合格することは...ないていたが実現ローカルファイルを更新して(Graphiteフラグを削除して)私は自分の仕事に使用したいmetrics.propertiesにすでに合格していたときに、ローカルファイル(metrics.properties)を気にする必要があるのは困惑しています。

1

あなたが持っているかどうかをチェックすることができ、あなたのファイルが追加されていても、それがメトリックの設定のために使用されていない、それは代わりに

+0

--conf spark.metrics.conf = <カスタムmetrics.propertiesパス>を指定する私にとっては十分でした。 -Dspark.metrics.confは必要ありませんでした。 –

+0

はい、動作しても動作しなくてもかまいませんが、-Dでjvmパラメータとして指定すると明示的になり、パラメータ名を変更しない限り、常に動作するはずです。 –

関連する問題