次の方法で共有


Windows ベースの HDInsight 用 .NET ソリューションを Linux ベースの HDInsight に移行する

Linux ベースの HDInsight クラスターでは 、Mono (https://mono-project.com) を使用して .NET アプリケーションを実行します。 Mono を使用すると、Linux ベースの HDInsight で MapReduce アプリケーションなどの .NET コンポーネントを使用できます。 このドキュメントでは、Windows ベースの HDInsight クラスター用に作成された .NET ソリューションを移行して、Linux ベースの HDInsight 上で Mono を操作する方法について説明します。

.NET との Mono 互換性

Mono バージョン 4.2.1 は HDInsight バージョン 3.6 に付属しています。 HDInsight に含まれる Mono のバージョンの詳細については、 HDInsight コンポーネントのバージョンに関する記事を参照してください。

Mono と .NET の互換性の詳細については、 Mono の互換性 (https://www.mono-project.com/docs/about-mono/compatibility/) ドキュメントを参照してください。

移植性の自動分析

.NET Portability Analyzer を使用して、アプリケーションと Mono の間の非互換性のレポートを生成できます。 次の手順を使用して、Mono の移植性をアプリケーションで確認するようにアナライザーを構成します。

  1. .NET Portability Analyzer をインストールします。 インストール中に、使用する Visual Studio のバージョンを選択します。

  2. Visual Studio 2015 で、[分析>Portability Analyzer の設定] を選択し、[Mono] セクションで 4.5 がオンになっていることを確認します。

    4.5 アナライザー設定の Mono セクションでチェックされています。

    [ OK] を選択 して構成を保存します。

  3. [ 分析>アセンブリの移植性を分析する] を選択します。 ソリューションを含むアセンブリを選択し、[ 開く ] を選択して分析を開始します。

  4. 分析が完了したら、[ 分析>分析レポートの表示] を選択します。 移植性分析結果で、[レポートを開く] を選択してレポートを開きます。

    移植性アナライザーの結果ダイアログ。

重要

アナライザーは、ソリューションに関するすべての問題をキャッチできません。 たとえば、Mono が Windows で実行されている場合、 c:\temp\file.txt のファイル パスは OK と見なされます。 Linux プラットフォームでは、同じパスが無効です。

手動移植性分析

Application Portability (https://www.mono-project.com/docs/getting-started/application-portability/) ドキュメントの情報を使用して、コードの手動監査を実行します。

変更してビルドする

引き続き Visual Studio を使用して、HDInsight 用の .NET ソリューションを構築できます。 ただし、プロジェクトが .NET Framework 4.5 を使用するように構成されていることを確認する必要があります。

デプロイとテスト

.NET Portability Analyzer または手動分析の推奨事項を使用してソリューションを変更したら、HDInsight でテストする必要があります。 Linux ベースの HDInsight クラスターでソリューションをテストすると、修正が必要な微妙な問題が明らかになることがあります。 アプリケーションのテスト中に、追加のログ記録を有効にすることをお勧めします。

ログへのアクセスの詳細については、次のドキュメントを参照してください。

次のステップ