Azure Machine Learning WorkbenchからSparkクラスタを使う場合の注意点
最近リリースされたAzure Machine Learning Workbenchは、機械学習の実行環境を
- ローカルPC
- ローカルPC上のDocker
- Azure HDInsightのSparkクラスタ
から選択できます。
リモートPCのDocker及びAzure HDInsightのSparkクラスタを使う際の設定方法については
Azure ML のコンピューティング ターゲットとして DSVM と HDI を作成する方法 | Microsoft Docs
に記述されているのですが、追加の設定が必要になる場合があります。
上記のドキュメントに記載されている設定手順は
になります。例えばクラスタ名がmksparkcluster01の場合には、Azure Machine Learning Workbenchからコマンドプロンプトを開き(FileメニューからOpen Command Promptメニューを選択)、以下のコマンドを実行すると、Sparkクラスタにアタッチできます。
az ml computetarget attach --name mksparkcluster01 --address mksparkcluster01.azurehdinsight.net --username <ssh username> --password <ssh password> --type cluster az ml experiment prepare -c mksparkcluster01
ただし、これで機械学習のスクリプトを記述して実行すると、以下のエラーが発生することがあります。
ImportError: libmpi_cxx.so.1: cannot open shared object file: No such file or directory
この問題は、MMLSpark (Microsoft Machine Learning Library for Apache Spark) を明示的にSparkクラスタにインストールすることで解消されます (プロジェクトフォルダ配下のaml_config/spark_dependencies.ymlに記述された構成に従ってMMLSparkはインストールされるはずなのですが。。)。
MMLSparkのインストール方法は以下になります。
Azureポータルで作成したHDInsightクラスタを選択し、「スクリプト操作」メニューを選択
「新規で送信」ボタンをクリックし、スクリプト操作として以下を入力します。
- スクリプトの種類:カスタム
- 名前:(適切な名前を入力、例えばMMLSparkInstall)
- ノードの種類:「ヘッド」と「ワーカー」を選択
「作成」ボタンをクリックすると、ヘッドノードとワーカーノードに、MMLSparkがインストールされます。
最新のスクリプトは以下のGitHubで確認してください。
github.com