Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai dari AWS CLI
Langkah 1: Buat aplikasi EMR Tanpa Server
Gunakan emr-serverless
create-application
perintah untuk membuat aplikasi EMR Tanpa Server pertama Anda. Anda perlu menentukan jenis aplikasi dan label EMR rilis Amazon yang terkait dengan versi aplikasi yang ingin Anda gunakan. Nama aplikasi adalah opsional.
- Spark
-
Untuk membuat aplikasi Spark, jalankan perintah berikut.
aws emr-serverless create-application \
--release-label emr-6.6.0 \
--type "SPARK" \
--name my-application
- Hive
-
Untuk membuat aplikasi Hive, jalankan perintah berikut.
aws emr-serverless create-application \
--release-label emr-6.6.0 \
--type "HIVE" \
--name my-application
Perhatikan ID aplikasi yang dikembalikan dalam output. Anda akan menggunakan ID untuk memulai aplikasi dan selama pengiriman pekerjaan, yang disebut setelah ini sebagai. application-id
Sebelum Anda melanjutkan keLangkah 2: Kirim pekerjaan ke aplikasi Tanpa EMR Server Anda, pastikan bahwa aplikasi Anda telah mencapai CREATED
status dengan get-application
API.
aws emr-serverless get-application \
--application-id application-id
EMRTanpa server menciptakan pekerja untuk mengakomodasi pekerjaan yang Anda minta. Secara default, ini dibuat sesuai permintaan, tetapi Anda juga dapat menentukan kapasitas pra-inisialisasi dengan mengatur initialCapacity
parameter saat Anda membuat aplikasi. Anda juga dapat membatasi total kapasitas maksimum yang dapat digunakan aplikasi dengan maximumCapacity
parameter. Untuk mempelajari selengkapnya tentang opsi ini, lihat Mengkonfigurasi aplikasi.
Langkah 2: Kirim pekerjaan ke aplikasi Tanpa EMR Server Anda
Sekarang aplikasi EMR Tanpa Server Anda siap menjalankan pekerjaan.
- Spark
-
Pada langkah ini, kami menggunakan PySpark skrip untuk menghitung jumlah kemunculan kata-kata unik di beberapa file teks. Bucket S3 publik dan hanya-baca menyimpan skrip dan kumpulan data. Aplikasi mengirimkan file output dan data log dari runtime Spark ke /output
dan /logs
direktori di bucket S3 yang Anda buat.
Untuk menjalankan pekerjaan Spark
-
Gunakan perintah berikut untuk menyalin skrip sampel yang akan kami jalankan ke bucket baru Anda.
aws s3 cp s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py s3://amzn-s3-demo-bucket
/scripts/
-
Dalam perintah berikut, ganti application-id
dengan ID aplikasi Anda. Ganti job-role-arn
dengan peran runtime yang ARN Anda buat. Buat peran runtime pekerjaan Pengganti job-run-name
dengan nama yang ingin Anda sebut pekerjaan Anda berjalan. Ganti semua amzn-s3-demo-bucket
string dengan bucket Amazon S3 yang Anda buat, dan /output
tambahkan ke path. Ini membuat folder baru di bucket tempat EMR Serverless dapat menyalin file keluaran aplikasi Anda.
aws emr-serverless start-job-run \
--application-id application-id
\
--execution-role-arn job-role-arn
\
--name job-run-name
\
--job-driver '{
"sparkSubmit": {
"entryPoint": "s3://amzn-s3-demo-bucket
/scripts/wordcount.py",
"entryPointArguments": ["s3://amzn-s3-demo-bucket
/emr-serverless-spark/output"],
"sparkSubmitParameters": "--conf spark.executor.cores=1 --conf spark.executor.memory=4g --conf spark.driver.cores=1 --conf spark.driver.memory=4g --conf spark.executor.instances=1"
}
}'
-
Perhatikan ID job run yang dikembalikan dalam output. Ganti job-run-id
dengan ID ini dalam langkah-langkah berikut.
- Hive
-
Dalam tutorial ini, kita membuat tabel, menyisipkan beberapa catatan, dan menjalankan kueri agregasi hitungan. Untuk menjalankan pekerjaan Hive, pertama-tama buat file yang berisi semua kueri Hive untuk dijalankan sebagai bagian dari pekerjaan tunggal, unggah file ke S3, dan tentukan jalur S3 ini saat Anda memulai pekerjaan Hive.
Untuk menjalankan pekerjaan Hive
-
Buat file bernama hive-query.ql
yang berisi semua kueri yang ingin Anda jalankan dalam pekerjaan Hive Anda.
create database if not exists emrserverless;
use emrserverless;
create table if not exists test_table(id int);
drop table if exists Values__Tmp__Table__1;
insert into test_table values (1),(2),(2),(3),(3),(3);
select id, count(id) from test_table group by id order by id desc;
-
Unggah hive-query.ql
ke bucket S3 Anda dengan perintah berikut.
aws s3 cp hive-query.ql s3://amzn-s3-demo-bucket
/emr-serverless-hive/query/hive-query.ql
-
Dalam perintah berikut, ganti application-id
dengan ID aplikasi Anda sendiri. Ganti job-role-arn
dengan peran runtime yang ARN Anda buat. Buat peran runtime pekerjaan Ganti semua amzn-s3-demo-bucket
string dengan bucket Amazon S3 yang Anda buat, lalu /output
tambahkan /logs
dan ke path. Ini membuat folder baru di bucket Anda, tempat EMR Tanpa Server dapat menyalin file keluaran dan log aplikasi Anda.
aws emr-serverless start-job-run \
--application-id application-id
\
--execution-role-arn job-role-arn
\
--job-driver '{
"hive": {
"query": "s3://amzn-s3-demo-bucket
/emr-serverless-hive/query/hive-query.ql",
"parameters": "--hiveconf hive.log.explain.output=false"
}
}' \
--configuration-overrides '{
"applicationConfiguration": [{
"classification": "hive-site",
"properties": {
"hive.exec.scratchdir": "s3://amzn-s3-demo-bucket
/emr-serverless-hive/hive/scratch",
"hive.metastore.warehouse.dir": "s3://amzn-s3-demo-bucket
/emr-serverless-hive/hive/warehouse",
"hive.driver.cores": "2",
"hive.driver.memory": "4g",
"hive.tez.container.size": "4096",
"hive.tez.cpu.vcores": "1"
}
}],
"monitoringConfiguration": {
"s3MonitoringConfiguration": {
"logUri": "s3://amzn-s3-demo-bucket
/emr-serverless-hive/logs"
}
}
}'
-
Perhatikan ID job run yang dikembalikan dalam output. Ganti job-run-id
dengan ID ini dalam langkah-langkah berikut.
Langkah 3: Tinjau output pekerjaan Anda
Jalankan pekerjaan biasanya membutuhkan waktu 3-5 menit untuk menyelesaikannya.
- Spark
-
Anda dapat memeriksa status pekerjaan Spark Anda dengan perintah berikut.
aws emr-serverless get-job-run \
--application-id application-id
\
--job-run-id job-run-id
Dengan tujuan log Anda disetel kes3://amzn-s3-demo-bucket
/emr-serverless-spark/logs
, Anda dapat menemukan log untuk pekerjaan khusus ini berjalan di bawahs3://amzn-s3-demo-bucket
/emr-serverless-spark/logs/applications/application-id
/jobs/job-run-id
.
Untuk aplikasi Spark, EMR Serverless mendorong log peristiwa setiap 30 detik ke sparklogs
folder di tujuan log S3 Anda. Ketika pekerjaan Anda selesai, log runtime Spark untuk driver dan pelaksana mengunggah ke folder yang diberi nama sesuai dengan jenis pekerja, seperti atau. driver
executor
Output dari PySpark pekerjaan diunggah kes3://amzn-s3-demo-bucket
/output/
.
- Hive
-
Anda dapat memeriksa status pekerjaan Hive Anda dengan perintah berikut.
aws emr-serverless get-job-run \
--application-id application-id
\
--job-run-id job-run-id
Dengan tujuan log Anda disetel kes3://amzn-s3-demo-bucket
/emr-serverless-hive/logs
, Anda dapat menemukan log untuk pekerjaan khusus ini berjalan di bawahs3://amzn-s3-demo-bucket
/emr-serverless-hive/logs/applications/application-id
/jobs/job-run-id
.
Untuk aplikasi Hive, EMR Tanpa Server terus mengunggah driver Hive ke HIVE_DRIVER
folder, dan tugas Tez log ke folder, dari TEZ_TASK
tujuan log S3 Anda. Setelah job run mencapai SUCCEEDED
status, output kueri Hive Anda akan tersedia di lokasi Amazon S3 yang Anda tentukan monitoringConfiguration
di bidang. configurationOverrides
Langkah 4: Membersihkan
Setelah selesai mengerjakan tutorial ini, pertimbangkan untuk menghapus sumber daya yang Anda buat. Kami menyarankan Anda merilis sumber daya yang tidak ingin Anda gunakan lagi.
Hapus aplikasi Anda
Untuk menghapus aplikasi, gunakan perintah berikut.
aws emr-serverless delete-application \
--application-id application-id
Hapus bucket log S3 Anda
Untuk menghapus bucket logging dan output S3 Anda, gunakan perintah berikut. Ganti amzn-s3-demo-bucket
dengan nama sebenarnya dari bucket S3 yang dibuat di.. Siapkan penyimpanan untuk Tanpa EMR Server
aws s3 rm s3://amzn-s3-demo-bucket
--recursive
aws s3api delete-bucket --bucket amzn-s3-demo-bucket
Hapus peran runtime pekerjaan Anda
Untuk menghapus peran runtime, lepaskan kebijakan dari peran. Anda kemudian dapat menghapus peran dan kebijakan.
aws iam detach-role-policy \
--role-name EMRServerlessS3RuntimeRole \
--policy-arn policy-arn
Untuk menghapus peran, gunakan perintah berikut.
aws iam delete-role \
--role-name EMRServerlessS3RuntimeRole
Untuk menghapus kebijakan yang dilampirkan pada peran, gunakan perintah berikut.
aws iam delete-policy \
--policy-arn policy-arn
Untuk lebih banyak contoh menjalankan pekerjaan Spark dan Hive, lihat Lowongan kerja Spark dan. Pekerjaan sarang