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 の移植性をアプリケーションで確認するようにアナライザーを構成します。
.NET Portability Analyzer をインストールします。 インストール中に、使用する Visual Studio のバージョンを選択します。
Visual Studio 2015 で、[分析>Portability Analyzer の設定] を選択し、[Mono] セクションで 4.5 がオンになっていることを確認します。
[ OK] を選択 して構成を保存します。
[ 分析>アセンブリの移植性を分析する] を選択します。 ソリューションを含むアセンブリを選択し、[ 開く ] を選択して分析を開始します。
分析が完了したら、[ 分析>分析レポートの表示] を選択します。 移植性分析結果で、[レポートを開く] を選択してレポートを開きます。
重要
アナライザーは、ソリューションに関するすべての問題をキャッチできません。 たとえば、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 クラスターでソリューションをテストすると、修正が必要な微妙な問題が明らかになることがあります。 アプリケーションのテスト中に、追加のログ記録を有効にすることをお勧めします。
ログへのアクセスの詳細については、次のドキュメントを参照してください。