翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
VPC エラー
以下のエラーは、Amazon VPCの設定に共通ですEMR。
トピック
無効なサブネット設定
[Cluster Details] ページの [Status] フィールドに、次のようなエラーが表示されます。
The subnet configuration was invalid: Cannot find route to InternetGateway in main RouteTable
rtb-id
for vpc vpc-id
.
この問題を解決するには、インターネットゲートウェイを作成して にアタッチする必要がありますVPC。詳細については、「インターネットゲートウェイを に追加するVPC」を参照してください。
または、 VPCで DNS解決の有効化とDNSホスト名のサポートの有効化が有効になっていることを確認します。詳細については、「 DNSで を使用するVPC」を参照してください。
欠落しているDHCPオプションセット
クラスターのシステムログ(syslog)に次のようなエラーとともにステップの失敗が表示されます。
ERROR org.apache.hadoop.security.UserGroupInformation (main): PriviledgedActionException as:hadoop (auth:SIMPLE) cause:java.io.IOException: org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException: Application with id '
application_id
' doesn't exist in RM.
または
ERROR org.apache.hadoop.streaming.StreamJob (main): Error Launching job : org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException: Application with id '
application_id
' doesn't exist in RM.
この問題を解決するには、パラメータが次の値に設定されているDHCPオプションセットVPCを含む を設定する必要があります。
注記
AWS GovCloud (米国西部) リージョンを使用する場合は、次の例で使用されている値us-gov-west-1.compute.internal
の代わりに domain-name を に設定します。
-
domain-name =
ec2.internal
リージョンが米国東部 (バージニア北部) の場合は、
ec2.internal
を使用します。他のリージョンの場合は、 を使用します。region-name
.compute.internal
。 例えば、us-west-2 では domain-name = を使用しますus-west-2.compute.internal
。 -
domain-name-servers =
AmazonProvidedDNS
詳細については、DHCP「オプションセット」を参照してください。
権限エラー
ステップの stderr
ログ内のエラーは、Simple Storage Service (Amazon S3) リソースに適切な権限がないことを示します。これは 403 エラーで、エラーは以下のようになっています。
Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID:
REQUEST_ID
ActionOnFailure が に設定されている場合TERMINATE_JOB_FLOW
、クラスターは 状態 で終了しますSHUTDOWN_COMPLETED_WITH_ERRORS
。
この問題をトラブルシューティングする方法には、次のようなものがあります。
-
内で Amazon S3 バケットポリシーを使用している場合はVPC、エンドポイントを作成し、VPCエンドポイントの作成時にポリシーオプションですべて許可を選択して、すべてのバケットへのアクセスを許可してください。
-
S3 リソースに関連付けられているポリシーVPCに、クラスターを起動する が含まれていることを確認します。
-
クラスターから次のコマンドを実行して、バケットにアクセスできることを確認します。
hadoop fs -copyToLocal s3://
path-to-bucket
/tmp/ -
より詳しいデバッグ情報を取得するには、
log4j.logger.org.apache.http.wire
ファイルのDEBUG
パラメータを/home/hadoop/conf/log4j.properties
に設定します。クラスターからバケットへのアクセスを試行してから、stderr
ログファイルを確認します。ログファイルで詳細情報を確認できます。Access denied for getting the prefix for bucket - us-west-2.elasticmapreduce with path samples/wordcount/input/ 15/03/25 23:46:20 DEBUG http.wire: >> "GET /?prefix=samples%2Fwordcount%2Finput%2F&delimiter=%2F&max-keys=1 HTTP/1.1[\r][\n]" 15/03/25 23:46:20 DEBUG http.wire: >> "Host: us-west-2.elasticmapreduce.s3.amazonaws.com[\r][\n]"
START_FAILED
になるエラー
AMI 3.7.0 より前のバージョンでは、ホスト名VPCsが指定されている の場合、Amazon EMR はサブネットの内部ホスト名をカスタムドメインアドレスにマッピングします。 ip-
例えば、ホスト名が でX.X.X.X.customdomain.com
.tldip-10.0.0.10
、 のドメイン名オプションVPCが customdomain.com に設定されている場合、Amazon によってマッピングされるホスト名は EMRになりますip-10.0.1.0.customdomain.com
。エントリは /etc/hosts
に追加され、ホスト名を解決して 10.0.0.10 にします。この動作は 3.7.0 AMI で変更され、Amazon は DHCPの設定VPCを完全にEMR尊重するようになりました。以前は、お客様は、ホスト名のマッピングを指定するブートストラップアクションも使用できました。
この動作を維持する場合は、カスタムドメインに必要な DNSおよび 転送解像度設定を指定する必要があります。
クラスターTerminated with errors
と の起動に NameNode 失敗する
カスタムDNSドメイン名を使用する で EMRクラスターを起動すると、 コンソールで次のエラーメッセージVPCが表示されてクラスターが失敗することがあります。
Terminated with errors On the master instance(
instance-id
), bootstrap action 1 returned a non-zero return code
失敗は、 が起動 NameNode できないことが原因です。これにより、Amazon S3 の形式URIが である NameNode ログに次のエラーが表示されますs3://
。mybucket
/logs
/cluster-id
/daemons/master instance-id
/hadoop-hadoop-namenode-master node hostname
.log.gz
2015-07-23 20:17:06,266 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem (main): Encountered exception loading fsimage java.io.IOException: NameNode is not formatted. at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:212) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1020) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:739) at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:537) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:596) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:765) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:749) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1441) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1507)
これは、 でEMRクラスターを起動するときに、EC2インスタンスに複数の完全修飾ドメイン名のセットが含まれる可能性があるという潜在的な問題が原因です。これによりVPC、 AWSが提供するDNSサーバーとカスタムユーザーが提供するDNSサーバーの両方が使用されます。ユーザー提供のDNSサーバーが、EMRクラスター内のノードを指定するために使用される A レコードにポインタ (PTR) レコードを提供しない場合、この方法で設定すると、クラスターの起動は失敗します。解決策は、 内のいずれかのサブネットでEC2インスタンスが起動されたときに作成される A レコードPTRごとに 1 つのレコードを追加することですVPC。