Hive クエリへのエクスポート

注意

適用対象: Machine Learning Studio (クラシック)

このコンテンツは、Studio (クラシック) のみに関連しています。 Azure Machine Learning デザイナーに同様のドラッグアンドドロップモジュールが追加されました。 この記事では、2つのバージョンの比較について詳しく説明します。

この記事では、Azure Machine Learning Studio (クラシック) の データのエクスポートモジュールの [ Hive にデータをエクスポート] オプションを使用する方法について説明します。 このオプションは、非常に大規模なデータセットを操作していて、machine learning の実験データを Hadoop クラスターまたは HDInsight 分散ストレージに保存する場合に便利です。 また、MapReduce ジョブを使用して処理できるように、中間結果やその他のデータを Hadoop にエクスポートすることもできます。

Hive にデータをエクスポートする方法

  1. データの エクスポート モジュールを実験に追加します。 このモジュールは、Azure Machine Learning Studio (クラシック) の [ データ入力と出力 ] カテゴリで確認できます。

    エクスポートするデータセットにモジュールを接続します。

  2. [ データソース] で [ Hive クエリ] を選択します。

  3. [ Hive テーブル名 には、データセットを格納する hive テーブルの名前を入力します。

  4. [ Hcatalog サーバー URI ] テキストボックスに、クラスターの完全修飾名を入力します。

    たとえば、という名前のクラスターを作成した場合は、 mycluster001 次の形式を使用します。

    https://mycluster001.azurehdinsight.net

  5. [ Hadoop ユーザーアカウント名 ] テキストボックスに、クラスターをプロビジョニングしたときに使用した hadoop ユーザーアカウントを貼り付けます。

  6. [ Hadoop ユーザーアカウントのパスワード ] テキストボックスに、クラスターをプロビジョニングしたときに使用した資格情報を入力します。

  7. 出力データの場所 として、データの格納場所 (HDFS または Azure) を示すオプションを選択します。

    データが Hadoop 分散ファイルシステム (HDFS) にある場合は、入力したものと同じアカウントとパスワードを使用してアクセスできる必要があります。

    データが Azure にある場合は、ストレージアカウントの場所と資格情報を指定します。

  8. Hdfs オプションを 選択した場合は、[ HDFS サーバーの URI] で、プレフィックスなしの HDInsight クラスター名を指定し https:// ます。

  9. [ Azure ] オプションを選択した場合は、ストレージアカウント名と、モジュールがストレージに接続するために使用できる資格情報を指定します。

    • Azure ストレージアカウント名: azure アカウントの名前を入力します。 たとえば、ストレージ アカウントの完全 URL が https://myshared.blob.core.windows.net であれば、「myshared」と入力します。

    • Azure storage キー: ストレージアカウントにアクセスするために用意されているキーをコピーして貼り付けます。

    • Azure container name: クラスターの 既定のコンテナー を指定します。 既定のコンテナーを確認するためのヒントについては、「 テクニカルノート 」を参照してください。

  10. キャッシュされた 結果を使用 する: 実験を実行するたびに Hive テーブルを書き換えないようにする場合は、このオプションを選択します。 モジュールパラメーターにその他の変更がない場合、実験では、最初にモジュールが実行されたとき、またはデータに変更があったときにのみ Hive テーブルが書き込まれます。

    実験が実行されるたびに Hive テーブルを作成する場合は、[キャッシュされた 結果を使用 する] オプションの選択を解除します。

  11. 実験を実行します。

データのエクスポートモジュールを使用する方法の例については、 Azure AI Galleryを参照してください。

テクニカルノート

このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。

一般的な質問

大規模なデータセットを書き込むときにメモリ不足の問題を回避する方法

Hadoop クラスターの既定の構成が、MapReduce ジョブの実行をサポートするために制限されている場合があります。 たとえば、HDInsight のこれらの リリースノート では、既定の設定は4ノードクラスターとして定義されています。

MapReduce ジョブの要件が使用可能な容量を超える場合、Hive クエリから メモリ不足の エラーメッセージが返され、 データのエクスポート 操作が失敗する可能性があります。 これが発生した場合は、Hive クエリの既定のメモリ割り当てを変更できます。

同じデータを不必要に再読み込みしないようにする方法

実験を実行するたびに Hive テーブルを再作成しない場合は、[キャッシュされた 結果を使用 する] オプションを TRUE に設定します。 このオプションが TRUE に設定されている場合、モジュールは実験が既に実行されているかどうかを確認します。前の実行が検出された場合、書き込み操作は実行されません。

使用上のヒント

クラスターの既定のコンテナーを確認するのは難しい場合があります。 いくつかのヒントを次に示します。

  • 既定の設定を使用してクラスターを作成した場合は、クラスターの作成時に同じ名前のコンテナーが作成されます。 このコンテナーは、クラスターの既定のコンテナーです。

  • [ カスタム作成 ] オプションを使用してクラスターを作成した場合は、既定のコンテナーを選択するための2つのオプションが表示されていました。

    既存のコンテナー: 既存のコンテナーを選択した場合は、そのコンテナーがクラスターの既定のストレージコンテナーになります。

    既定のコンテナーを作成 する: このオプションを選択した場合、クラスターと同じ名前のコンテナーが作成されます。そのコンテナー名をクラスターの既定のコンテナーとして指定する必要があります。

モジュールのパラメーター

名前 Range Type Default 説明
データ ソース List データソースまたはシンク Azure Blob Storage データ ソースには HTTP、FTP、匿名の HTTPS または FTPS、Azure BLOB ストレージ内のファイル、Azure テーブル、Azure SQL データベース、Hive テーブルまたは OData エンドポイントを指定できます。
Hive テーブルの名前 any String なし Hive 内のテーブルの名前
HCatalog サーバーの URI any String なし エンドポイント
Hadoop ユーザーアカウント名 any String なし Hadoop HDFS/HDInsight ユーザー名
Hadoop ユーザーアカウントのパスワード any SecureString なし Hadoop HDFS/HDInsight パスワード
出力データの場所 any DataLocation HDFS OutputDir に HDFS または Azure を指定する
HDFS サーバーの URI any String なし HDFS rest エンドポイント
Azure ストレージ アカウント名 any String なし Azure ストレージ アカウント名
Azure ストレージ キー any SecureString なし Azure ストレージ キー
Azure コンテナー名 any String なし Azure コンテナー名
キャッシュされた結果の使用 TRUE または FALSE Boolean false モジュールは、有効なキャッシュが存在しない場合にのみ実行されます。それ以外の場合は、以前の実行からキャッシュされたデータを使用します。

例外

例外 説明
エラー 0027 同じサイズが必要である 2 つのオブジェクトのサイズが異なる場合に、例外が発生します。
エラー 0003 1 つ以上の入力が null または空の場合に、例外が発生します。
エラー 0029 無効な URI が渡された場合に、例外が発生します。
エラー 0030 ファイルをダウンロードできない場合は例外が発生します。
エラー 0002 1 つ以上のパラメーターが解析できなかった、または指定した型から対象のメソッドの種類で必要な型に変換されなかった場合に、例外が発生します。
エラー 0009 Azure ストレージのアカウント名またはコンテナー名が正しく指定されていない場合、例外が発生します。
エラー 0048 ファイルを開けない場合、例外が発生します。
エラー 0046 指定したパスにディレクトリを作成できない場合に、例外が発生します。
エラー 0049 ファイルを解析できない場合、例外が発生します。

Studio (クラシック) モジュール固有のエラーの一覧については、「 Machine Learning エラーコード」を参照してください。

API 例外の一覧については、「 Machine Learning REST API のエラーコード」を参照してください。

関連項目

データのインポート
データのエクスポート
Azure SQL Database へのエクスポート
Azure Blob Storage へのエクスポート
Azure Table へのエクスポート