Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai dengan Amazon EMR di EKS
Topik ini membantu Anda mulai menggunakan EMR Amazon EKS dengan menerapkan aplikasi Spark di cluster virtual. Ini termasuk langkah-langkah untuk mengatur izin yang benar dan untuk memulai pekerjaan. Sebelum memulai, pastikan bahwa Anda telah menyelesaikan langkah-langkah dalam Menyiapkan Amazon EMR di EKS. Ini membantu Anda mendapatkan alat seperti AWS CLI pengaturan sebelum membuat cluster virtual Anda. Untuk templat lain yang dapat membantu Anda memulai, lihat Panduan Praktik Terbaik EMR Kontainer
Anda memerlukan informasi berikut dari langkah-langkah penyiapan:
-
ID klaster virtual untuk EKS klaster Amazon dan namespace Kubernetes yang terdaftar di Amazon EMR
penting
Saat membuat EKS cluster, pastikan untuk menggunakan m5.xlarge sebagai tipe instance, atau jenis instance lainnya dengan memori dan memori yang lebih tinggiCPU. Menggunakan tipe instans dengan memori lebih rendah CPU atau dari m5.xlarge dapat menyebabkan kegagalan pekerjaan karena sumber daya yang tersedia di cluster tidak mencukupi.
-
Nama IAM peran yang digunakan untuk pelaksanaan pekerjaan
-
Label rilis untuk EMR rilis Amazon (misalnya,
emr-6.4.0-latest
) -
Target tujuan untuk pencatatan dan pemantauan:
-
Nama grup CloudWatch log Amazon dan awalan aliran log
-
Lokasi Amazon S3 untuk menyimpan peristiwa dan log kontainer
-
penting
Amazon EMR pada EKS pekerjaan menggunakan Amazon CloudWatch dan Amazon S3 sebagai target tujuan untuk pemantauan dan pencatatan. Anda dapat memantau kemajuan pekerjaan dan memecahkan masalah kegagalan dengan melihat log pekerjaan yang dikirim ke tujuan ini. Untuk mengaktifkan logging, IAM kebijakan yang terkait dengan IAM peran untuk pelaksanaan pekerjaan harus memiliki izin yang diperlukan untuk mengakses sumber daya target. Jika IAM kebijakan tidak memiliki izin yang diperlukan, Anda harus mengikuti langkah-langkah yang diuraikanPerbarui kebijakan kepercayaan dari peran eksekusi tugas, Mengonfigurasi proses pekerjaan untuk menggunakan log Amazon S3, dan Mengonfigurasi pekerjaan yang dijalankan untuk CloudWatch menggunakan Log sebelum menjalankan tugas sampel ini.
Jalankan aplikasi Spark
Ambil langkah-langkah berikut untuk menjalankan aplikasi Spark sederhana EMR di EKS Amazon. entryPoint
File aplikasi untuk aplikasi Spark Python terletak di. s3://
Bagian REGION
.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.pyREGION
adalah Wilayah tempat Amazon Anda EMR berada di klaster EKS virtual, seperti us-east-1
.
-
Perbarui IAM kebijakan untuk peran pelaksanaan pekerjaan dengan izin yang diperlukan, seperti yang ditunjukkan oleh pernyataan kebijakan berikut.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadFromLoggingAndInputScriptBuckets", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::*.elasticmapreduce", "arn:aws:s3:::*.elasticmapreduce/*", "arn:aws:s3:::
amzn-s3-demo-destination-bucket
", "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*", "arn:aws:s3:::amzn-s3-demo-logging-bucket
", "arn:aws:s3:::amzn-s3-demo-logging-bucket
/*" ] }, { "Sid": "WriteToLoggingAndOutputDataBuckets", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*", "arn:aws:s3:::amzn-s3-demo-logging-bucket
/*" ] }, { "Sid": "DescribeAndCreateCloudwatchLogStream", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] }, { "Sid": "WriteToCloudwatchLogs", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:my_log_group_name
:log-stream:my_log_stream_prefix
/*" ] } ] }-
Pernyataan pertama
ReadFromLoggingAndInputScriptBuckets
dalam kebijakan ini memberikanListBucket
danGetObjects
akses ke bucket Amazon S3 berikut:-
- ember tempatREGION
.elasticmapreduceentryPoint
file aplikasi berada. -
amzn-s3-demo-destination-bucket
- ember yang Anda tentukan untuk data keluaran Anda. -
amzn-s3-demo-logging-bucket
- ember yang Anda tentukan untuk data logging Anda.
-
-
Pernyataan kedua
WriteToLoggingAndOutputDataBuckets
dalam kebijakan ini memberikan izin pekerjaan untuk menulis data ke bucket keluaran dan logging Anda masing-masing. -
Pernyataan ketiga
DescribeAndCreateCloudwatchLogStream
memberikan pekerjaan dengan izin untuk mendeskripsikan dan membuat Amazon CloudWatch Logs. -
Pernyataan keempat
WriteToCloudwatchLogs
memberikan izin untuk menulis log ke grup CloudWatch log Amazon bernama
di bawah aliran log bernamamy_log_group_name
.my_log_stream_prefix
-
-
Untuk menjalankan aplikasi Spark Python, gunakan perintah berikut. Ganti semua yang bisa diganti
red italicized
nilai dengan nilai yang sesuai. BagianREGION
adalah Wilayah tempat Amazon Anda EMR berada di klaster EKS virtual, sepertius-east-1
.aws emr-containers start-job-run \ --virtual-cluster-id
cluster_id
\ --namesample-job-name
\ --execution-role-arnexecution-role-arn
\ --release-labelemr-6.4.0-latest
\ --job-driver '{ "sparkSubmitJobDriver": { "entryPoint": "s3://REGION
.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py", "entryPointArguments": ["s3://amzn-s3-demo-destination-bucket
/wordcount_output"], "sparkSubmitParameters": "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1" } }' \ --configuration-overrides '{ "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "my_log_group_name
", "logStreamNamePrefix": "my_log_stream_prefix
" }, "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket
" } } }'Data output dari pekerjaan ini akan tersedia di
s3://
.amzn-s3-demo-destination-bucket
/wordcount_outputAnda juga dapat membuat JSON file dengan parameter tertentu untuk menjalankan pekerjaan Anda. Kemudian jalankan
start-job-run
perintah dengan path ke JSON file. Untuk informasi selengkapnya, lihat Kirim pekerjaan yang dijalankan dengan StartJobRun. Untuk detail lebih lanjut tentang mengonfigurasi parameter untuk menjalankan tugas, lihat Pilihan untuk mengonfigurasi tugas berjalan. -
Untuk menjalankan SQL aplikasi Spark, gunakan perintah berikut. Ganti semua
red italicized
nilai dengan nilai yang sesuai. BagianREGION
adalah Wilayah tempat Amazon Anda EMR berada di klaster EKS virtual, sepertius-east-1
.aws emr-containers start-job-run \ --virtual-cluster-id
cluster_id
\ --namesample-job-name
\ --execution-role-arnexecution-role-arn
\ --release-labelemr-6.7.0-latest
\ --job-driver '{ "sparkSqlJobDriver": { "entryPoint": "s3://query-file
.sql", "sparkSqlParameters": "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1" } }' \ --configuration-overrides '{ "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "my_log_group_name
", "logStreamNamePrefix": "my_log_stream_prefix
" }, "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket
" } } }'Contoh file SQL query ditunjukkan di bawah ini. Anda harus memiliki penyimpanan file eksternal, seperti S3, tempat data untuk tabel disimpan.
CREATE DATABASE demo; CREATE EXTERNAL TABLE IF NOT EXISTS demo.amazonreview( marketplace string, customer_id string, review_id string, product_id string, product_parent string, product_title string, star_rating integer, helpful_votes integer, total_votes integer, vine string, verified_purchase string, review_headline string, review_body string, review_date date, year integer) STORED AS PARQUET LOCATION 's3://
URI to parquet files
'; SELECT count(*) FROM demo.amazonreview; SELECT count(*) FROM demo.amazonreview WHERE star_rating = 3;Output untuk pekerjaan ini akan tersedia di log stdout driver di S3 atau CloudWatch, tergantung pada
monitoringConfiguration
yang dikonfigurasi. -
Anda juga dapat membuat JSON file dengan parameter tertentu untuk menjalankan pekerjaan Anda. Kemudian jalankan start-job-run perintah dengan path ke JSON file. Untuk informasi selengkapnya, lihat Mengirimkan pekerjaan. Untuk detail selengkapnya tentang mengonfigurasi parameter job run, lihat Opsi untuk mengonfigurasi job run.
Untuk memantau kemajuan pekerjaan atau kegagalan debug, Anda dapat memeriksa log yang diunggah ke Amazon S3, Log, CloudWatch atau keduanya. Lihat jalur log di Amazon S3 di Konfigurasikan pekerjaan yang dijalankan untuk menggunakan log S3 dan untuk log Cloudwatch di Konfigurasikan pekerjaan yang dijalankan untuk menggunakan Log. CloudWatch Untuk melihat log di CloudWatch Log, ikuti petunjuk di bawah ini.
-
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di panel Navigasi, pilih Log. Lalu pilih Grup log.
-
Pilih grup log untuk EMR Amazon EKS dan kemudian lihat peristiwa log yang diunggah.
-
penting
Pekerjaan memiliki kebijakan coba ulang yang dikonfigurasi secara default. Untuk informasi tentang cara mengubah atau menonaktifkan konfigurasi, lihat Menggunakan kebijakan coba ulang pekerjaan.