Migrieren von .NET-Lösungen für Windows-basierte HDInsight-Cluster zu Linux-basierten HDInsight-Clustern

Linux-basierte HDInsight-Cluster nutzen Mono (https://mono-project.com) für die Ausführung von .NET-Anwendungen. Mit Mono können Sie .NET-Komponenten wie MapReduce-Anwendungen mit Linux-basierten HDInsight-Clustern verwenden. In diesem Artikel erfahren Sie, wie Sie für Windows-basierte HDInsight-Cluster erstellte .NET-Lösungen migrieren, um die Verwendung mit Mono auf Linux-basierten HDInsight-Clustern zu ermöglichen.

Kompatibilität von Mono mit .NET

Mono-Version 4.2.1 ist in HDInsight Version 3.6 enthalten. Weitere Informationen zu der mit HDInsight bereitgestellten Version von Mono finden Sie unter HDInsight-Komponentenversionen.

Weitere Informationen zur Kompatibilität von Mono und .NET finden Sie im Dokument Mono compatibility (https://www.mono-project.com/docs/about-mono/compatibility/)).

Automatisierte Portabilitätsanalyse

Mit .NET Portability Analyzer können Sie einen Bericht über Inkompatibilitäten zwischen Ihrer Anwendung und Mono generieren. Führen Sie die folgenden Schritte aus, um den Analyzer zum Überprüfen Ihrer Anwendung auf Mono-Portabilität zu konfigurieren:

  1. Installieren von .NET Portability Analyzer. Während der Installation wählen Sie die zu verwendende Version von Visual Studio aus.

  2. Wählen Sie in Visual Studio 2015 Analysieren>Portability Analyzer-Einstellungen aus, und stellen Sie sicher, dass 4.5 im Abschnitt Mono aktiviert ist.

    4.5 checked in Mono section for the analyzer settings.

    Klicken Sie auf OK, um die Konfiguration zu speichern.

  3. Wählen Sie Analysieren>Portabilität der Assembly analysieren aus. Wählen Sie die Assembly aus, die Ihre Lösung enthält, und klicken Sie dann auf Öffnen, um die Analyse zu starten.

  4. Nachdem die Analyse abgeschlossen ist, wählen Sie Analysieren>Analyseberichte anzeigen aus. Wählen Sie unter Ergebnisse der Portabilitätsanalyse die Option Bericht öffnen aus, um den Bericht zu öffnen.

    Portability analyzer results dialog.

Wichtig

Der Analyzer kann nicht jedes Problem mit Ihrer Lösung abfangen. Der Dateipfad c:\temp\file.txt wird beispielsweise als gültig angesehen, wenn Mono unter Windows ausgeführt wird. Der gleiche Pfad ist auf einer Linux-Plattform ungültig.

Manuelle Portabilitätsanalyse

Führen Sie eine manuelle Prüfung des Codes anhand der Informationen im Artikel Application Portability (https://www.mono-project.com/docs/getting-started/application-portability/)) durch.

Ändern und Erstellen

Sie können Visual Studio weiterhin zum Erstellen Ihrer .NET-Lösungen für HDInsight verwenden. Allerdings müssen Sie sicherstellen, dass das Projekt für die Verwendung von .NET Framework 4.5 konfiguriert ist.

Bereitstellen und Testen

Nachdem Sie Ihre Lösung mithilfe der Empfehlungen von .NET Portability Analyzer oder einer manuellen Analyse geändert haben, müssen Sie sie mit HDInsight testen. Das Testen der Lösung auf einem Linux-basierten HDInsight-Cluster legt möglicherweise geringfügige Probleme offen, die korrigiert werden müssen. Es empfiehlt sich, während des Testens in der Anwendung zusätzliche Protokollierung zu aktivieren.

Weitere Informationen zum Zugriff auf Protokolle finden Sie in den folgenden Artikeln:

Nächste Schritte