Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan pencatatan dan debugging EMR klaster Amazon
Salah satu hal yang harus diputuskan saat Anda merencanakan klaster adalah seberapa banyak dukungan debugging yang ingin Anda sediakan. Saat pertama kali mengembangkan aplikasi pemrosesan data, sebaiknya uji aplikasi pada klaster yang memproses sebagian kecil, namun mewakili data Anda. Ketika Anda melakukan ini, Anda mungkin ingin memanfaatkan semua alat debugging yang EMR ditawarkan Amazon, seperti pengarsipan file log ke Amazon S3.
Setelah Anda menyelesaikan pengembangan dan memasukkan aplikasi pemrosesan data ke produksi penuh, Anda dapat memilih untuk mengurangi skala debugging. Melakukannya dapat menghemat biaya penyimpanan arsip berkas log di Amazon S3 dan mengurangi beban pemrosesan pada klaster karena tidak perlu lagi menulis status ke Amazon S3. Keuntungannya, tentu saja, adalah jika terjadi kesalahan, Anda hanya membutuhkan lebih sedikit alat untuk menyelidiki masalah tersebut.
berkas log default
Secara default, setiap cluster menulis file log pada node utama. Ini ditulis untuk direktori /mnt/var/log/
. Anda dapat mengaksesnya dengan menggunakan SSH untuk terhubung ke node utama seperti yang dijelaskan dalamConnect ke node utama EMR klaster Amazon menggunakan SSH. Amazon EMR mengumpulkan log sistem dan aplikasi tertentu yang dihasilkan oleh EMR daemon Amazon dan EMR proses Amazon lainnya untuk memastikan operasi layanan yang efektif.
catatan
Jika Anda menggunakan Amazon EMR release 6.8.0 atau versi lebih lama, file log akan disimpan ke Amazon S3 selama penghentian klaster, sehingga Anda tidak dapat mengakses file log setelah node utama berakhir. Amazon EMR merilis 6.9.0 dan log arsip yang lebih baru ke Amazon S3 selama penskalaan klaster turun, jadi file log yang dihasilkan di cluster tetap ada bahkan setelah node dihentikan.
Anda tidak perlu mengaktifkan apa pun untuk memiliki file log yang ditulis pada simpul utama. Ini adalah perilaku default Amazon EMR dan Hadoop.
Sebuah klaster menghasilkan beberapa jenis berkas log, termasuk:
-
Log langkah — Log ini dihasilkan oleh EMR layanan Amazon dan berisi informasi tentang cluster dan hasil dari setiap langkah. File log disimpan dalam
/mnt/var/log/hadoop/steps/
direktori pada node utama. Setiap langkah mencatat hasilnya dalam subdirektori bernomor terpisah:/mnt/var/log/hadoop/steps/s-
untuk langkah pertama,stepId1
//mnt/var/log/hadoop/steps/s-
, untuk langkah kedua, dan seterusnya. Pengidentifikasi langkah 13 karakter (misalnya stepId 1, stepId 2) unik untuk sebuah cluster.stepId2
/ -
Hadoop dan log YARN komponen — Log untuk komponen yang terkait dengan Apache YARN dan MapReduce, misalnya, terkandung dalam folder terpisah di.
/mnt/var/log
Lokasi berkas log untuk komponen Hadoop di bawah/mnt/var/log
adalah sebagai berikut: hadoop-hdfs, hadoop-mapreduce, hadoop-httpfs, dan hadoop-yarn. hadoop-state-pusher Direktori adalah untuk output dari proses pendorong status Hadoop. -
Log tindakan bootstrap — Jika tugas Anda menggunakan tindakan bootstrap, hasil dari tindakan tersebut akan dicatat. File log disimpan di/mnt/var/log/bootstrap-actions/ pada node utama. Setiap tindakan bootstrap mencatat hasilnya di subdirektori bernomor terpisah:
/mnt/var/log/bootstrap-actions/1/
untuk tindakan bootstrap pertama,/mnt/var/log/bootstrap-actions/2/
, untuk tindakan bootstrap kedua, dan seterusnya. -
Log status instans — Log ini memberikan informasi tentangCPU, status memori, dan utas pengumpul sampah dari node. File log disimpan
/mnt/var/log/instance-state/
di simpul utama.
Arsipkan berkas log ke Amazon S3
catatan
Saat ini Anda tidak dapat menggunakan agregasi log ke Amazon S3 dengan utilitas yarn logs
.
Amazon EMR merilis 6.9.0 dan log arsip yang lebih baru ke Amazon S3 selama penskalaan klaster turun, jadi file log yang dihasilkan di cluster tetap ada bahkan setelah node dihentikan. Perilaku ini diaktifkan secara otomatis, jadi Anda tidak perlu melakukan apa pun untuk menyalakannya. Untuk Amazon EMR merilis 6.8.0 dan versi lebih lama, Anda dapat mengonfigurasi cluster untuk mengarsipkan file log yang disimpan di node utama ke Amazon S3 secara berkala. Hal ini memastikan bahwa berkas log tersedia setelah klaster berakhir, baik melalui pematian normal atau karena kesalahan. Amazon EMR mengarsipkan file log ke Amazon S3 dengan interval 5 menit.
Agar file log diarsipkan ke Amazon S3 untuk EMR Amazon merilis 6.8.0 dan yang lebih lama, Anda harus mengaktifkan fitur ini saat meluncurkan cluster. Anda dapat melakukan ini menggunakan konsol,CLI, atauAPI. Secara default, klaster diluncurkan dengan menggunakan konsol yang telah mengaktifkan pengarsipan log. Untuk cluster yang diluncurkan menggunakan CLI orAPI, logging ke Amazon S3 harus diaktifkan secara manual.
Untuk mengenkripsi file log yang disimpan di Amazon S3 dengan kunci AWS KMS yang dikelola pelanggan
Dengan Amazon EMR versi 5.30.0 dan yang lebih baru (kecuali Amazon EMR 6.0.0), Anda dapat mengenkripsi file log yang disimpan di Amazon S3 dengan kunci yang dikelola pelanggan. AWS KMS Untuk mengaktifkan opsi ini di konsol, ikuti langkah-langkah di Arsipkan berkas log ke Amazon S3. Profil EC2 instans Amazon Anda dan EMR peran Amazon Anda harus memenuhi prasyarat berikut:
-
Profil EC2 instans Amazon yang digunakan untuk klaster Anda harus memiliki izin untuk digunakan
kms:GenerateDataKey
. -
EMRPeran Amazon yang digunakan untuk klaster Anda harus memiliki izin untuk digunakan
kms:DescribeKey
. -
Profil EC2 instans Amazon dan EMR peran Amazon harus ditambahkan ke daftar pengguna kunci untuk kunci terkelola AWS KMS pelanggan yang ditentukan, seperti yang ditunjukkan oleh langkah-langkah berikut:
-
Buka konsol AWS Key Management Service (AWS KMS) di https://console.aws.amazon.com/kms
. -
Untuk mengubah AWS Region, gunakan pemilih Region di sudut kanan atas halaman.
-
Pilih alias KMS tombol untuk memodifikasi.
-
Pada halaman detail kunci di bawah Pengguna Kunci, pilih Tambahkan.
-
Di kotak dialog Tambah pengguna kunci, pilih profil EC2 instans Amazon dan EMR peran Amazon Anda.
-
Pilih Tambahkan.
-
Untuk informasi selengkapnya, lihat peran IAM layanan yang digunakan oleh Amazon EMR, dan Menggunakan kebijakan utama dalam panduan pengembang Layanan Manajemen AWS Kunci.
Untuk menggabungkan log di Amazon S3 menggunakan AWS CLI
catatan
Saat ini Anda tidak dapat menggunakan agregasi log dengan utilitas yarn logs
. Anda hanya dapat menggunakan agregasi yang didukung oleh prosedur ini.
Agregasi log (Hadoop 2.x) mengkompilasi log dari semua kontainer untuk aplikasi individual ke dalam satu file. Untuk mengaktifkan agregasi log ke Amazon S3 menggunakan AWS CLI, Anda menggunakan tindakan bootstrap saat peluncuran klaster untuk mengaktifkan agregasi log dan menentukan bucket untuk menyimpan log.
-
Untuk mengaktifkan agregasi log, buat file konfigurasi berikut
myConfig.json
yang disebut yang berisi berikut ini:[ { "Classification": "yarn-site", "Properties": { "yarn.log-aggregation-enable": "true", "yarn.log-aggregation.retain-seconds": "-1", "yarn.nodemanager.remote-app-log-dir": "s3:\/\/
DOC-EXAMPLE-BUCKET
\/logs" } } ]Ketik perintah berikut dan ganti
dengan nama EC2 key pair Anda. Anda juga dapat mengganti salah satu teks merah dengan konfigurasi Anda sendiri.myKey
aws emr create-cluster --name "
Test cluster
" \ --release-labelemr-7.3.0
\ --applications Name=Hadoop
\ --use-default-roles \ --ec2-attributes KeyName=myKey
\ --instance-typem5.xlarge
\ --instance-count3
\ --configurations file://./myConfig.jsonSaat Anda menentukan jumlah instance tanpa menggunakan
--instance-groups
parameter, satu node primer diluncurkan, dan instance yang tersisa diluncurkan sebagai node inti. Semua simpul akan menggunakan tipe instans yang ditentukan dalam perintah.catatan
Jika sebelumnya Anda belum membuat peran EMR layanan default dan profil EC2 instance, jalankan
aws emr create-default-roles
untuk membuatnya sebelum menjalankancreate-cluster
subperintah.
Untuk informasi selengkapnya tentang menggunakan EMR perintah Amazon di AWS CLI, lihat Referensi AWS CLI Perintah.
Log lokasi
Daftar berikut mencakup semua jenis log dan lokasinya di Amazon S3. Anda dapat menggunakan ini untuk memecahkan masalah AmazonEMR.
- Log langkah
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/steps/<step-id>
/ - Log aplikasi
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/containers/Lokasi ini termasuk kontainer
stderr
danstdout
directory.info
,prelaunch.out
,, danlaunch_container.sh
log. - Log manajer sumber daya
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/node/<leader-instance-id>
/applications/hadoop-yarn/ - Hadoop HDFS
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/node/<all-instance-id>
/applications/hadoop-hdfs/Lokasi ini termasuk NameNode, DataNode, dan YARN TimelineServer log.
- Log manajer simpul
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/node/<all-instance-id>
/applications/hadoop-yarn/ - Log instance-state
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/node/<all-instance-id>
/daemons/instance-state/ - EMRLog penyediaan Amazon
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/node/<leader-instance-id>
/provision-node/* - Log sarang
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/node/<leader-instance-id>
/applications/hive/*-
Untuk menemukan log Hive di cluster Anda, hapus tanda bintang (
*
) dan tambahkan/var/log/hive/
ke tautan di atas. -
Untuk menemukan HiveServer 2 log, hapus tanda bintang (
*
) dan tambahkanvar/log/hive/hiveserver2.log
ke tautan di atas. -
Untuk menemukan CLI log Hive, hapus tanda bintang (
*
) dan tambahkan/var/log/hive/user/hadoop/hive.log
ke tautan di atas. -
Untuk menemukan log Hive Metastore Server, hapus tanda bintang (
*
) dan tambahkan ke tautan di atas./var/log/hive/user/hive/hive.log
Jika kegagalan Anda berada di simpul utama atau tugas aplikasi Tez Anda, berikan log dari wadah Hadoop yang sesuai.
-