Apache Spark uygulaması için .NET'Apache Spark ayıklama

Bu nasıl 2019'da .NET for Apache Spark hata ayıklama adımları Windows.

Uygulamanızda hata ayıklama

Yeni bir komut istemi penceresi açın ve aşağıdaki komutu çalıştırın:

spark-submit \
  --class org.apache.spark.deploy.dotnet.DotnetRunner \
  --master local \
  <path-to-microsoft-spark-jar> \
  debug

Komutunu çalıştırarak aşağıdaki çıkışı görüyorsunuz:

***********************************************************************
* .NET Backend running debug mode. Press enter to exit *
***********************************************************************

Hata ayıklama modunda DotnetRunner .NET uygulamasını başlatmaz, bunun yerine .NET uygulamasını başlatmayı bekler. Bu komut istemi penceresini açık bırakın ve C# hata ayıklayıcısı aracılığıyla .NET uygulamanızı başlatarak uygulama hata ayıklamasını çalıştırın. .NET uygulamanıza hata ayıklamak için bir C# hata ayıklayıcısı(Visual Studio Windows/macOS veya Visual Studio Code'de C#Hata Ayıklayıcısı Uzantısı) ile başlama.

Kullanıcı tanımlı işlevde (UDF) hata ayıklama

Not

Kullanıcı tanımlı işlevler yalnızca Hata Ayıklayıcısı ile Windows Visual Studio destekler.

çalıştırmadan spark-submit önce aşağıdaki ortam değişkenlerini ayarlayın:

set DOTNET_WORKER_DEBUG=1

Spark uygulamanızı çalıştırarak Choose Just-In-Time Debugger bir pencere açılır. Bir hata Visual Studio seçin.

Hata ayıklayıcısı TaskRunner.csdosyasında aşağıdaki konumda kesmeye neden olur:

if (EnvironmentUtils.GetEnvironmentVariableAsBool("DOTNET_WORKER_DEBUG"))
{
    Debugger.Launch(); // <-- The debugger will break here.
}

Hata ayıklamayı planlasanız UDF'yi içeren .cs dosyasına gidin ve bir kesme noktası ayarlayın. Kesme noktası, çalışan The breakpoint will not currently be hit henüz UDF içeren derlemeyi yüklenmemiş olduğunu söylüyor.

Uygulamanıza F5 devam etmek için isabet eder ve sonunda kesme noktası isabet eder.

Not

Her görev için Tam Zamanında Hata Ayıklayıcı Seç penceresi açılır. Aşırı açılır pencereleri önlemek için yürütücü sayısını düşük bir sayıya ayarlayın. Örneğin, spark-submit için --master local[1] seçeneğini kullanarak görev sayısını tek bir hata ayıklayıcı örneği başlatan 1 olarak ayarlayın.

Scala kodunda hata ayıklama

Scala tarafı kodunda ( , vb.) hata ayıklaması gerekirse, aşağıdaki komutu kullanabilir ve IntelliJ kullanarak çalışan işleme bir hata DotnetRunner DotnetBackendHandler ayıklayıcı iliştirebilirsiniz:

spark-submit \
  --driver-java-options -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 \
  --class org.apache.spark.deploy.dotnet.DotnetRunner \
  --master local \
  <path-to-microsoft-spark-jar> \
  <path-to-your-app-exe> <argument(s)-to-your-app>

Komutunu çalıştırdıktan sonra Intellij kullanarak çalışan işleme bir hata ayıklayıcısı iliştirin.

Sonraki adımlar