第5章 必要なコンポーネントの登録
OpenStack Data Processing には、Hadoop クラスターを起動し、使用するために必要な要素を含む、Hadoop イメージが必要です。具体的には、Red Hat OpenStack Platform には、必要なデータ処理プラグインを備えた Red Hat Enterprise Linux を含むイメージが必要です。
実行するジョブに適したHadoopイメージを取得したら、それを OpenStack Data Processing サービスに登録します。これを行うには、以下を行います。
- イメージを Image サービスにアップロードします。手順については、イメージの アップロード を参照してください。
- イメージのアップロード後に、ダッシュボードで プロジェクト > データ処理 > イメージレジストリー を選択します。
- Register Image をクリックして、Image ドロップダウンメニューから、Hadoop イメージを選択します。
- 各インスタンス/ノードで設定を適用し、プロセスを管理するために OpenStack Data Processing サービスが使用するユーザー名を入力します。Red Hat Enterprise Linux が提供する公式イメージ( 4章Hopa イメージの作成で使用)でこの目的のユーザー名は cloud-user です。
デフォルトでは、OpenStack Data Processing サービスは、必要なプラグインおよびバージョンタグを プラグイン およびバージョンメニューに追加します。タグの選択が正しいことを確認してから、Add plugin tags をクリックして追加します。OpenStack Data Processing サービスでは、カスタムタグを使用して、登録したイメージを区別またはグループ化することもできます。Add custom tag ボタンを使用してタグを追加します。タグは Description フィールドのボックスに表示されます。
カスタムタグを削除するには、その名前の横にある x をクリックします。
- Done をクリックします。イメージが Image Registry テーブルに表示されます。
5.1. 入出力データソースの登録
イメージを登録したら、データ入力ソースおよび出力先を登録します。Object Storage サービスからオブジェクトとして登録できます。そのため、両方を最初にオブジェクトとしてアップロードする必要があります。手順については、Upload an Object を参照してください。
別の Hadoop 互換の分散ファイルシステム(HDFS など)からデータオブジェクトを直接登録することもできます。選択した分散ファイルシステムにデータをアップロードする方法は、そのドキュメントを参照してください。
- Dashboard で プロジェクト > Data Processing > Data Sources の順に 選択します。
- Create Data Source をクリックします。Name フィールドにデータソースの名前を入力します。
- Description フィールドを使用してデータソースを記述します(オプション)。
データソースのタイプおよび URL を選択します。これを行う手順は、ソースの場所によって異なります。
データが Object Storage サービスにある場合は、Data Source Type ドロップダウンメニューから Swift を選択します。以下のようになります。
- URL フィールドに swift://CONTAINER/OBJECT としてデータソースのコンテナーおよびオブジェクト名を指定します。
- データソースにログインが必要な場合は、Source username フィールドおよび Source password フィールドに必要な認証情報を指定します。
データが HDFS (Hadoop Distributed File System)にある場合は、Data Source Type ドロップダウンメニューから対応するソースを選択します。次に、URL フィールドにデータソースの URL を hdfs://HDFSHOST:PORT/OBJECTPATH として入力します。
- HDFSHOST は、HDFS ホストのホスト名です。
- PORT はデータソースにアクセスできるポートです。
- OBJECTPATH は、HDFSHOST のデータソースへの利用可能なパスです。
- Done をクリックします。データソースはデータソーステーブルで利用できるようになります。
この手順は、ジョブに必要なデータ入力/出力オブジェクトごとに実行します。