Azure Databricks uygulama günlüklerini Azure İzleyici'ye gönderme
Bu makalede, Azure Databricks Log Analytics çalışma alanınauygulama günlüklerinin ve ölçümlerin nasıl gönderileceği gösterilir. GitHub kullanılabilir Azure Databricks Izleme kitaplığınıkullanır.
Önkoşullar
Azure Databricks kümenizi, GitHub beniokudosyasında açıklandığı gibi izleme kitaplığını kullanacak şekilde yapılandırın.
Not
İzleme kitaplığı, işlerinizde Azure Izleyici 'ye Apache Spark düzeyinde olayları ve Spark yapılandırılmış akış ölçümlerini akışlar. Bu olaylar ve ölçümler için uygulama kodunuzda herhangi bir değişiklik yapmanız gerekmez.
Dropwizard kullanarak uygulama ölçümleri gönderme
Spark, Dropwizard ölçüm kitaplığını temel alan yapılandırılabilir bir ölçüm sistemi kullanır. Daha fazla bilgi için Spark belgelerindeki ölçümler bölümüne bakın.
Uygulama ölçümlerini Azure Databricks uygulama kodundan Azure Izleyicisine göndermek için şu adımları izleyin:
spark-listeners-loganalytics-1,0-snapshot. jar jar dosyasını GitHub readme' de açıklandığı gibi oluşturun.
Uygulama kodunuzda Dropwizard ölçerler veya sayaçları oluşturun.
UserMetricsSystemİzleme kitaplığında tanımlanan sınıfını kullanabilirsiniz. Aşağıdaki örnek adlı bir sayaç oluştururcounter1.import org.apache.spark.metrics.UserMetricsSystems import org.apache.spark.sql.SparkSession object StreamingQueryListenerSampleJob { private final val METRICS_NAMESPACE = "samplejob" private final val COUNTER_NAME = "counter1" def main(args: Array[String]): Unit = { val spark = SparkSession .builder .getOrCreate val driverMetricsSystem = UserMetricsSystems .getMetricSystem(METRICS_NAMESPACE, builder => { builder.registerCounter(COUNTER_NAME) }) driverMetricsSystem.counter(COUNTER_NAME).inc(5) } }İzleme kitaplığı, sınıfının nasıl kullanılacağını gösteren bir örnek uygulama içerir .
Log4J kullanarak uygulama günlükleri gönderme
Azure Databricks uygulama günlüklerinizi kitaplıkta Log4J Ekleyici kullanarak Azure Log Analytics göndermek için şu adımları izleyin:
spark-listeners-1,0-snapshot. jar ve spark-listeners-loganalytics-1,0-snapshot. jar jar dosyasını GitHub readme' de açıklandığı gibi oluşturun.
Uygulamanız için bir Log4J. Propertiesyapılandırma dosyası oluşturun. Aşağıdaki yapılandırma özelliklerini ekleyin. Uygulama paketi adınızı ve günlük düzeyini belirtilen yerde değiştirin:
log4j.appender.A1=com.microsoft.pnp.logging.loganalytics.LogAnalyticsAppender log4j.appender.A1.layout=com.microsoft.pnp.logging.JSONLayout log4j.appender.A1.layout.LocationInfo=false log4j.additivity.<your application package name>=false log4j.logger.<your application package name>=<log level>, A1Örnek bir yapılandırma dosyası buradanbulabilirsiniz.
Uygulama kodunuzda Spark-Listeners-loganalytics projesini ekleyin ve uygulama kodunuza içeri aktarın.
import com.microsoft.pnp.logging.Log4jConfiguration3. adımda oluşturduğunuz Log4J. Properties dosyasını kullanarak Log4J 'i yapılandırın:
getClass.getResourceAsStream("<path to file in your JAR file>/log4j.properties") { stream => { Log4jConfiguration.configure(stream) } }Kodunuzda uygun düzeyde Apache Spark günlük iletileri ekleyin. Örneğin,
logDebugbir hata ayıklama günlüğü iletisi göndermek için yöntemini kullanın. Daha fazla bilgi için Spark belgelerindeki günlüğe kaydetme konusuna bakın.logTrace("Trace message") logDebug("Debug message") logInfo("Info message") logWarning("Warning message") logError("Error message")
Örnek uygulamayı çalıştırın
İzleme kitaplığı, uygulama ölçümlerinin ve uygulama günlüklerinin Azure Izleyici 'ye nasıl gönderileceğini gösteren örnek bir uygulama içerir. Örneği çalıştırmak için:
spark-jobs projesini, GitHub beniokudosyasında açıklandığı gibi izleme kitaplığı 'nda oluşturun.
Databricks çalışma alanınıza gidin ve buradaaçıklandığı gibi yeni bir iş oluşturun.
İş ayrıntısı sayfasında, jar ayarla' yı seçin.
JAR dosyasını içinden Upload
/src/spark-jobs/target/spark-jobs-1.0-SNAPSHOT.jar.Ana sınıfiçin girin .
İzleme kitaplığını kullanmak için önceden yapılandırılmış bir küme seçin. Bkz. Azure izleyici 'ye ölçümleri göndermek için Azure Databricks yapılandırma.
İş çalıştığında, Log Analytics çalışma alanınızda uygulama günlüklerini ve ölçümleri görüntüleyebilirsiniz.
Uygulama günlükleri SparkLoggingEvent_CL altında görüntülenir:
SparkLoggingEvent_CL | where logger_name_s contains "com.microsoft.pnp"
Uygulama ölçümleri SparkMetric_CL altında görünür:
SparkMetric_CL | where name_s contains "rowcounter" | limit 50
Önemli
Ölçümlerin göründüğünü doğruladıktan sonra örnek uygulama işini durdurun.
Sonraki adımlar
Üretim Azure Databricks iş yüklerinizde performans sorunlarını gidermek için bu kod kitaplığına eşlik eden performans izleme panosunu dağıtın.