VPCkesalahan selama operasi EMR klaster Amazon - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

VPCkesalahan selama operasi EMR klaster Amazon

Kesalahan berikut umum terjadi pada VPC konfigurasi di AmazonEMR.

Konfigurasi subnet tidak valid

Pada halaman Detail Klaster, di bidang Status, Anda melihat kesalahan yang mirip dengan yang berikut ini:

The subnet configuration was invalid: Cannot find route to InternetGateway in main RouteTable rtb-id for vpc vpc-id.

Untuk mengatasi masalah ini, Anda harus membuat Internet Gateway dan melampirkannya ke AndaVPC. Untuk informasi selengkapnya, lihat Menambahkan gateway internet ke VPC.

Atau, verifikasi bahwa Anda telah mengonfigurasi DNSresolusi VPC Aktifkan dan Aktifkan dukungan DNS nama host diaktifkan. Untuk informasi selengkapnya, lihat Menggunakan DNS dengan Anda VPC.

Set DHCP Opsi Hilang

Anda melihat kegagalan langkah dalam log sistem klaster (syslog) dengan kesalahan yang mirip dengan yang berikut ini:

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.

atau

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.

Untuk mengatasi masalah ini, Anda harus mengonfigurasi VPC yang menyertakan Set DHCP Opsi yang parameternya diatur ke nilai berikut:

catatan

Jika Anda menggunakan wilayah AWS GovCloud (AS-barat), tetapkan nama domain menjadi us-gov-west-1.compute.internal bukan nilai yang digunakan dalam contoh berikut.

  • nama domain = ec2.internal

    Gunakan ec2.internal jika wilayah Anda adalah US East (N. Virginia). Untuk wilayah lain, gunakan region-name.compute.internal. Misalnya di us-west-2, gunakan domain-name =. us-west-2.compute.internal

  • domain-name-servers = AmazonProvidedDNS

Untuk informasi selengkapnya, lihat Set DHCP Opsi.

Kesalahan izin

Kegagalan dalam log stderr untuk langkah menunjukkan bahwa sumber daya Amazon S3 tidak memiliki izin yang sesuai. Ini adalah kesalahan 403 dan kesalahannya terlihat seperti:

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

Jika ActionOnFailure disetel keTERMINATE_JOB_FLOW, maka ini akan mengakibatkan cluster berakhir dengan status,SHUTDOWN_COMPLETED_WITH_ERRORS.

Beberapa cara untuk memecahkan masalah ini meliputi:

  • Jika Anda menggunakan kebijakan bucket Amazon S3 dalam aVPC, pastikan untuk memberikan akses ke semua bucket dengan membuat VPC titik akhir dan memilih Izinkan semua di bawah opsi Kebijakan saat membuat titik akhir.

  • Pastikan bahwa kebijakan apa pun yang terkait dengan sumber daya S3 menyertakan VPC tempat Anda meluncurkan klaster.

  • Coba jalankan perintah berikut ini dari klaster Anda untuk memverifikasi Anda dapat mengakses bucket

    hadoop fs -copyToLocal s3://path-to-bucket /tmp/
  • Anda dapat mengetahui informasi debugging yang lebih spesifik dengan mengatur parameter log4j.logger.org.apache.http.wire ke DEBUG dalam file /home/hadoop/conf/log4j.properties pada klaster. Anda dapat memeriksa berkas log stderr setelah mencoba untuk mengakses bucket dari klaster. Berkas log tersebut akan memberikan informasi lebih detail:

    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]"

Kesalahan yang mengakibatkan START_FAILED

Sebelum AMI 3.7.0, VPCs di mana nama host ditentukan, Amazon EMR memetakan nama host internal subnet dengan alamat domain khusus sebagai berikut:. ip-X.X.X.X.customdomain.com.tld Misalnya, jika nama host itu ip-10.0.0.10 dan VPC memiliki opsi nama domain yang disetel ke customdomain.com, nama host yang dihasilkan dipetakan oleh Amazon adalah. EMR ip-10.0.1.0.customdomain.com Sebuah entri ditambahkan dalam /etc/hosts untuk menyelesaikan nama host menjadi 10.0.0.10. Perilaku ini diubah dengan AMI 3.7.0 dan sekarang Amazon EMR menghormati DHCP konfigurasi seluruhnya. VPC Sebelumnya, pelanggan juga dapat menggunakan tindakan bootstrap untuk menentukan pemetaan nama host.

Jika Anda ingin mempertahankan perilaku ini, Anda harus menyediakan pengaturan resolusi DNS dan penerusan yang Anda perlukan untuk domain kustom.

Cluster Terminated with errors dan NameNode gagal memulai

Saat meluncurkan EMR klaster di VPC mana menggunakan nama DNS domain khusus, klaster Anda mungkin gagal dengan pesan kesalahan berikut di konsol:

Terminated with errors On the master instance(instance-id), bootstrap action 1 returned a non-zero return code

Kegagalan adalah akibat dari NameNode tidak bisa memulai. Ini akan menghasilkan kesalahan berikut yang ditemukan di NameNode log, yang Amazon URI S3-nya berbentuk:: s3://amzn-s3-demo-bucket/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)

Hal ini disebabkan oleh masalah potensial di mana sebuah EC2 instance dapat memiliki beberapa set nama domain yang sepenuhnya memenuhi syarat saat meluncurkan EMR cluster diVPC, yang menggunakan server yang disediakan dan DNS server yang AWS disediakan pengguna DNS khusus. Jika DNS server yang disediakan pengguna tidak menyediakan catatan pointer (PTR) apa pun untuk catatan A apa pun yang digunakan untuk menunjuk node dalam sebuah EMR cluster, cluster akan gagal memulai ketika dikonfigurasi dengan cara ini. Solusinya adalah menambahkan 1 PTR record untuk setiap record A yang dibuat saat EC2 instance diluncurkan di salah satu subnet di VPC file.