Hadoop への接続
Spectrum™ Technology Platform で Hadoop のデータにアクセスするには、Management Console を使って Hadoop への接続を定義する必要があります。接続を定義した後は、Hadoop に対してデータの読み書きを行うフローを Enterprise Designer で作成できます。
- Management Console を開きます。
- [リソース] > [データ ソース] に移動します。
- [追加] ボタン をクリックします。
-
[名前] フィールドに、接続の名前を入力します。任意の名前にすることができます。
注: 接続をいったん保存すると、名前の変更は不可能になります。
- [タイプ] フィールドで、[HDFS] を選択します。
- [ホスト] フィールドに、HDFS クラスタ内の NameNode のホスト名または IP アドレスを入力します。
- [ポート] フィールドに、ネットワーク ポート番号を入力します。
-
[ユーザ] で、次のいずれかを選択します。
- サーバー ユーザ
- HDFS クラスタで認証が有効になっている場合は、このオプションを選択します。このオプションでは、Spectrum™ Technology Platform サーバーを実行するユーザ資格情報を使用して HDFS を認証します。
- ユーザ名
- HDFS クラスタで認証が無効になっている場合は、このオプションを選択します。
- この HDFS ファイル サーバー接続に対して Kerberos 認証機能を有効にする場合は、[Kerberos] チェックボックスをオンにします。
-
[Kerberos] 認証を有効にした場合は、[Keytab ファイル パス] フィールドに Keytab ファイルのパスを入力します。
注: Keytab ファイルが Spectrum™ Technology Platform サーバー上に存在することを確認してください。
-
[プロトコル] フィールドで、次のいずれかを選択します。
- WEBHDFS
- HDFS クラスタで HDFS 1.0 以降を実行している場合は、このオプションを選択します。このプロトコルは、読み込みと書き込みの両方の操作をサポートしています。
- HFTP
- HDFS クラスタで HDFS 1.0 よりも古いバージョンを実行している場合、または組織で WEBHDFS プロトコルが許可されていない場合は、このオプションを選択します。このプロトコルは、読み込み操作のみをサポートしています。
- HAR
- Hadoop アーカイブ ファイルにアクセスする場合は、このオプションを選択します。このオプションを選択する場合は、アーカイブ ファイルへのパスを [パス] フィールドに指定します。このプロトコルは、読み込み操作のみをサポートしています。
- [詳細オプション] を展開します。
-
WEBHDFS プロトコルを選択した場合は、必要に応じて次の詳細オプションを指定できます。
- 複製係数
- 各ブロックを複製するデータ ノードの数を指定します。例えば、デフォルト設定の 3 は、各ブロックをクラスタ内の異なる 3 つのノードに複製します。最大複製係数は 1024 です。
- ブロック サイズ
- 各ブロックのサイズを指定します。HDFS は、ここで指定するサイズのブロックにファイルを分割します。例えば、デフォルトの 64 MB を指定した場合、各ファイルは 64 MB ブロックに分割されます。その後、各ブロックは、[複製係数] フィールドに指定された、クラスタ内のノード数に複製されます。
- ファイル権限
- Spectrum™ Technology Platform によって HDFS クラスタに書き込まれるファイルに対するアクセス レベルを指定します。次の各オプションに対して、読み取り権限および書き込み権限を指定できます。注: 実行権限は Spectrum™ Technology Platform に適用されません。
- ユーザ
- これは前の手順で指定した、[サーバー ユーザ] のユーザか、[ユーザ名] フィールドに指定したユーザのいずれかです。
- グループ
- これは、ユーザがメンバーとして所属する任意のグループを指します。例えば、ユーザが john123 の場合、グループ権限は john123 がメンバーとして所属するグループにすべて適用されます。
- その他
- これは、他のすべてのユーザと、指定されたユーザがメンバーとして所属しないグループを指します。
-
[ファイル権限] テーブルの下のグリッドで、Hadoop のサーバー プロパティを指定し、ステージやアクティビティで接続が使用される場合にソートとフィルタが正しく機能するようにします。プロパティを追加するには、次のいずれかを行います。
- をクリックし、プロパティとその値をそれぞれ [プロパティ] および [値] フィールドに追加します。
- をクリックし、設定 XML ファイルをアップロードします。この XML ファイルは hdfs-site.xml、yarn-site.xml、または core-site.xml とよく似たものになるはずです。注: この設定ファイルはサーバー上に置く必要があります。
次の表に、Hadoop 接続を使用するステージまたはアクティビティによってプロパティとその値がどう変わるかを示します。プロパティは、使用される Hadoop バージョン (Hadoop 1.x または Hadoop 2.x) によっても変わります。
HDFS 接続を使用しているステージまたはアクティビティ 必要なサーバー プロパティ - ステージ Read from Sequence File
- アクティビティ Run Hadoop Pig
Hadoop 1.x のパラメータ - fs.default.name
- Hadoop が実行するノードとポートを指定します。
例えば、hdfs://152.144.226.224:9000 とします。
- mapred.job.tracker
- MapReduce ジョブ トラッカーが実行するホスト名または IP アドレスと、ポートを指定します。ホスト名をローカルとして入力した場合は、ジョブは単一のマップとして実行され、タスクが少なくなります。
例えば、152.144.226.224:9001 とします。
- dfs.namenode.name.dir
- DFS 名前ノードが名前テーブルを格納する、ローカル ファイルシステム上の場所を指定します。ディレクトリのカンマ区切りリストである場合、名前テーブルは冗長性のためにすべてのディレクトリに複製されます。
例えば、file:/home/hduser/Data/namenode とします。
- dfs.datanode.data.dir
- DFS データ ノードがブロックを格納する、ローカル ファイルシステム上の場所を指定します。ディレクトリのカンマ区切りリストである場合、データは、通常は異なるデバイス上にあるすべての名前付きディレクトリに格納されます。存在しないディレクトリは無視されます。
例えば、file:/home/hduser/Data/datanode とします。
- hadoop.tmp.dir
- 他の一時ディレクトリのベース ディレクトリを指定します。
例えば、/home/hduser/Data/tmp とします。
Hadoop 2.x のパラメータ
- fs.defaultFS
- Hadoop が実行するノードとポートを指定します。
例えば、hdfs://152.144.226.224:9000 とします。
注: Spectrum バージョン 11.0 以前では、パラメータ名 fs.defaultfs を使用する必要があります。大文字と小文字の違いに注意してください。バージョン 11 SP1 以降では、fs.defaultfs と fs.defaultFS のどちらの名前も有効です。Spectrum™ Technology Platform 11 SP1 以降では、パラメータ名 fs.defaultFS を使用することをお勧めします。
- yarn.resourcemanager.resource-tracker.address
- Resource Manager のホスト名または IP アドレスを指定します。
例えば、152.144.226.224:8025 とします。
- yarn.resourcemanager.scheduler.address
- Scheduler Interface のアドレスを指定します。
例えば、152.144.226.224:8030 とします。
- yarn.resourcemanager.address
- Resource Manager に含まれる Applications Manager インターフェイスのアドレスを指定します。
例えば、152.144.226.224:8041 とします。
- mapreduce.jobhistory.address
- MapReduce Job History Server が実行するホスト名または IP アドレスと、ポートを指定します。
例えば、152.144.226.224:10020 とします。
- mapreduce.application.classpath
- Map Reduce アプリケーション用の CLASSPATH を指定します。この CLASSPATH は、Map Reduce アプリケーションに関連するクラスが存在する場所を表します。注: エントリをカンマで区切って指定する必要があります。例を次に示します。
$HADOOP_CONF_DIR, $HADOOP_COMMON_HOME/share/hadoop/common/*, $HADOOP_COMMON_HOME/share/hadoop/common/lib/*, $HADOOP_HDFS_HOME/share/hadoop/hdfs/*, $HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*, $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*, $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*, $HADOOP_YARN_HOME/share/hadoop/yarn/*, $HADOOP_YARN_HOME/share/hadoop/yarn/lib/*
- mapreduce.app-submission.cross-platform
- Spectrum サーバーが Windows コンピュータ上で実行しており、そこに Cloudera をインストールする場合に生じる、さまざまなプラットフォームの問題を処理します。Spectrum サーバーと Cloudera が異なるオペレーティング システム上で実行している場合は、このパラメータの値として true を入力します。それ以外の場合は、false にします。注: Cloudera は Windows クライアントをサポートしません。このパラメータを設定することは回避策であり、結果として生じるすべてのプラットフォームの問題を解決するものではありません。
- hadoop.security.authentication
- 使用される認証セキュリティの種類。kerberos という値を入力します。
- yarn.resourcemanager.principal
- Hadoop YARN リソース ネゴシエータ用のリソース マネージャに対して使用される Kerberos プリンシパル。
例えば、yarn/_HOST@HADOOP.COM。
- dfs.namenode.kerberos.principal
- Hadoop 分散ファイル システム (HDFS) の NameNode に対して使用される Kerberos プリンシパル。
例えば、hdfs/_HOST@HADOOP.COM。
- dfs.datanode.kerberos.principal
- Hadoop 分散ファイル システム (HDFS) の DataNode に対して使用される Kerberos プリンシパル。
例えば、hdfs/_HOST@HADOOP.COM。
- ステージ Read from File
- ステージ Write to File
- ステージ Read from Hive ORC File
- ステージ Write to Hive ORC File
Hadoop 1.x のパラメータ - fs.default.name
- Hadoop が実行するノードとポートを指定します。
例えば、hdfs://152.144.226.224:9000 とします。
Hadoop 2.x のパラメータ
- fs.defaultFS
- Hadoop が実行するノードとポートを指定します。
例えば、hdfs://152.144.226.224:9000 とします。
注: Spectrum バージョン 11.0 以前では、パラメータ名 fs.defaultfs を使用する必要があります。大文字と小文字の違いに注意してください。バージョン 11 SP1 以降では、fs.defaultfs と fs.defaultFS のどちらの名前も有効です。Spectrum™ Technology Platform 11 SP1 以降では、パラメータ名 fs.defaultFS を使用することをお勧めします。
- 接続をテストするには、[テスト] をクリックします。
- [保存] をクリックします。
HDFS クラスタへの接続を定義した後は、Enterprise Designer のソース ステージとシンク ステージ (Read from File、Write to File など) でその接続を使用できるようになります。ソースまたはシンク ステージでファイルを定義するときに [リモート マシン] をクリックすると、HDFS クラスタを選択できます。