Memulai dari AWS CLI - Amazon EMR

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-applicationperintah 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-applicationAPI.

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
  1. 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/
  2. 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" } }'
  3. 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
  1. 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;
  2. 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
  3. 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" } } }'
  4. 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