Amazon EMR の「プールからの接続待機中のタイムアウト」エラーを解決するにはどうすればよいですか?

所要時間1分
0

Amazon EMR の Apache Hadoop ジョブが「プールからの接続待機中のタイムアウト」というエラーメッセージで失敗します。

解決方法

このエラーは通常、Amazon Simple Storage Service (Amazon S3) の Amazon EMR File System (EMRFS) 接続制限に達すると発生します。このエラーを解決するには、fs.s3.maxConnections プロパティの値を大きくします。これは、クラスターの実行中、または新しいクラスターの作成時に実行できます。

1.    SSH を使用してマスターノードに接続します。

2.    次のコマンドを実行して、emrfs-site.xml ファイルを sudo として開きます。このファイルは、/usr/share/aws/emr/emrfs/conf ディレクトリにあります。

sudo vi /usr/share/aws/emr/emrfs/conf/emrfs-site.xml

3.    fs.s3.maxConnections プロパティを 50 を超える値に設定します。以下の例では、値を 100 に設定しています。アプリケーションに必要な S3 の同時接続数に応じて、もっと大きな値の選択が必要になる場合もあります。
注意: Apache HBase でクラスターを起動すると、fs.s3.maxConnections の値はデフォルトで 1000 に設定されます。fs.s3.maxConnections の値を大きくしてもタイムアウトエラーが解決しない場合は、アプリケーションで接続のリークがないか確認します。

<property>
  <name>fs.s3.maxConnections</name>
  <value>100</value>
</property>

4.    すべてのコアノードとタスクノードで、手順 2 と 3 を繰り返します。マスターノードで使用した値と同じ fs.s3.maxConnections の値を使用します。
注: Amazon EMR バージョン 5.21.0 以降では、クラスターアプリケーションを再設定し、実行中のクラスター内の各インスタンスグループに追加の設定分類を指定できます。詳細については、Reconfigure an instance group in a running cluster を参照してください。

5.    Hadoop ジョブを再度実行します。アプリケーションは、サービスを再起動しなくても fs.s3.maxConnections の新しい値を使用する必要があります。

新しいクラスターを起動するときにすべてのノードで fs.s3.maxConnections プロパティの値を設定するには、次のような設定オブジェクトを使用します。詳細については、アプリケーションの構成 を参照してください。

[
  {
    "Classification": "emrfs-site",
    "Properties": {
      "fs.s3.maxConnections": "100"
    }
  }
]

関連情報

Work with storage and file systems

AWS公式
AWS公式更新しました 2年前
コメントはありません