# Spark UniversalでAmazon EMR接続パラメーターを定義

Amazon EMRディストリビューションを使ってYARNクラスターでSparkジョブを実行する場合、Amazon EMRではメインノードと従属ノードにあるクラスパスが同じではないため、ライブラリをー手動で配布する必要があります。

## このタスクについて

コマンドプロンプトを使って次のアクションを完了させ、メインノードと従属ノードの間でライブラリーを分配します。

## 手順

1. PEMファイルをクラスターにアップロードします。
   ```

   scp -i username_EC2.pem sanulich_EC2.pem hadoop@<mainNode>:/home/hadoop
   ```
2. PEMファイルの権限が正しいことを確認します。
   ```
   ssh -i username_EC2.pem hadoop@<mainNode>
   ls -al
   ```

   正しい権限は次のとおりであることが必要です。
   ```
    -r--------  1 username username    1674 кві 11 16:26  username_EC2.pem
   ```
3. オプション: PEMファイルの権限が正しくない場合は、次のように権限を変更します。
   ```
   chmod -rwx username_EC2.pem
   chmod  u+r username_EC2.pem
   ```
4. Amazon EMRインスタンスに移動し、従属ノードのホスト名を見つけます。
5. メインノードから従属ノードにJARファイルをコピーします。
   ```
   scp -i /home/hadoop/username_EC2.pem  /usr/lib/spark/jars/*.jar hadoop@<slaveNode>:/home/hadoop
   ```
6. メインノードからそれぞれの従属ノードに接続します。
   ```
   ssh -i /home/hadoop/username_EC2.pem hadoop@<slaveNode>
   ```
7. JARファイルを移動させます。
   ```
   sudo mv /home/hadoop/*.jar /usr/lib/spark/jars
   ```

   情報メモ重要: Remote Engineを使用している場合は、Hadoop設定JARyarn-site.xmlのyarn-site.xmlにあるyarn.application.classpathプロパティに、/usr/lib/spark/jars/\*を追加する必要があります。
8. Talend Studioを開いた後、Sparkジョブを開きます。
9. デザインワークスペースの下にある[Run] (実行)ビューをクリックした後に、[Spark configuration] (Spark設定)ビューをクリックします。
10. [Advanced properties] (詳細プロパティ)テーブルに、spark.hadoop.dfs.client.use.datanode.hostnameプロパティをTrue値で追加します。

## タスクの結果

Sparkジョブが正しく設定され、Amazon EMRディストリビューションでYARNクラスターモードによって実行されるようになります。