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.
Topik
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, gunakanregion-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
keDEBUG
dalam file/home/hadoop/conf/log4j.properties
pada klaster. Anda dapat memeriksa berkas logstderr
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-
Misalnya, jika nama host itu X.X.X.X.customdomain.com
.tldip-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.