我正在構建Spark Streaming作業的度量系統,在系統中,度量值收集在每個執行器中,因此度量源(用於收集度量的類)需要初始化在每個執行者。spark-submit:--jars不起作用
度量來源被打包在一個jar中,當提交一個作業時,jar通過參數'--jars'從本地發送到每個執行器,但是,執行器開始在jar之前初始化度量值源類到達,結果,它拋出類沒有發現異常。
看來,如果執行者可以等待所有資源準備好,問題就會解決,但我真的不知道該怎麼做。
有沒有人面臨同樣的問題?我試過使用HDFS(將jar複製到HDFS,然後提交作業並讓執行程序從HDFS中的路徑加載類),但是它失敗了。我檢查了源代碼,看來類加載器只能解析本地路徑。
這裏是日誌,你可以看到,罐子是在2016年1月15日18時08分07秒加入到類路徑,但是在初始化18時07分26秒2016年1月15日
開始INFO 2016-01-15 18:08:07 org.apache.spark.executor.Executor:正在添加 文件:/ var/lib/spark/worker/worker-0/app-20160115180722-0041/0 /./ datainsights度量源組件-1.0.jar 到類加載器
ERROR 2016年1月15日18時07分26秒Logging.scala:96 - org.apache.spark.metrics.MetricsSystem:源類 org.apache.spark。 metrics.PerfCounterSource不能被實例化
下面是我用命令:
spark-submit --verbose \
--jars /tmp/datainsights-metrics-source-assembly-1.0.jar \
--conf "spark.metrics.conf=metrics.properties" \
--class org.microsoft.ofe.datainsights.StartServiceSignalPipeline \
./target/datainsights-1.0-jar-with-dependencies.jar
你可以發佈你嘗試過的命令嗎? – Srini
看來,該jar被加載到類路徑,但由於網絡延遲,該過程非常緩慢。結果,我遇到了另一個問題,我已經更新了這個問題。請看詳情。 –