

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memulai dengan Amazon EMR Tanpa Server
<a name="getting-started"></a>

Tutorial ini membantu Anda memulai dengan EMR Serverless saat Anda menerapkan contoh beban kerja Spark atau Hive. Anda akan membuat, menjalankan, dan men-debug aplikasi Anda sendiri. Kami menampilkan opsi default di sebagian besar bagian tutorial ini.

Sebelum Anda meluncurkan aplikasi EMR Tanpa Server, selesaikan tugas-tugas berikut.

**Topics**
+ [Berikan izin untuk menggunakan EMR Tanpa Server](#gs-permissions)
+ [Siapkan penyimpanan untuk EMR Tanpa Server](#gs-prepare-storage)
+ [Buat EMR Studio untuk menjalankan beban kerja interaktif](#gs-interactive)
+ [Buat peran runtime pekerjaan](#gs-runtime-role)
+ [Memulai dengan EMR Serverless dari konsol](gs-console.md)
+ [Memulai dari AWS CLI](gs-cli.md)

## Berikan izin untuk menggunakan EMR Tanpa Server
<a name="gs-permissions"></a>

Untuk menggunakan EMR Tanpa Server, Anda memerlukan peran pengguna atau IAM dengan kebijakan terlampir yang memberikan izin untuk EMR Tanpa Server. Untuk membuat pengguna dan melampirkan kebijakan yang sesuai kepada pengguna tersebut, ikuti instruksi di[Berikan izin](setting-up.md#setting-up-iam).

## Siapkan penyimpanan untuk EMR Tanpa Server
<a name="gs-prepare-storage"></a>

Dalam tutorial ini, Anda akan menggunakan bucket S3 untuk menyimpan file output dan log dari sampel beban kerja Spark atau Hive yang akan Anda jalankan menggunakan aplikasi EMR Tanpa Server. Untuk membuat bucket, ikuti petunjuk dalam [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html) di *Panduan Pengguna Amazon Simple Storage Service Console*. Ganti referensi lebih lanjut `amzn-s3-demo-bucket` dengan nama bucket yang baru dibuat. 

## Buat EMR Studio untuk menjalankan beban kerja interaktif
<a name="gs-interactive"></a>

Jika Anda ingin menggunakan EMR Tanpa Server untuk menjalankan kueri interaktif melalui notebook yang di-host di EMR Studio, Anda perlu menentukan bucket S3 dan [peran layanan](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-service-role.html#emr-studio-service-role-serverless) minimum untuk EMR Serverless untuk membuat Workspace. Untuk langkah-langkah penyiapan, lihat [Menyiapkan Studio EMR di Panduan](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-set-up.html) Manajemen *EMR* Amazon. Untuk informasi selengkapnya tentang beban kerja interaktif, lihat[Jalankan beban kerja interaktif dengan EMR Serverless melalui EMR Studio](interactive-workloads.md).

## Buat peran runtime pekerjaan
<a name="gs-runtime-role"></a>

Job run di EMR Serverless menggunakan peran runtime yang memberikan izin terperinci untuk spesifik dan sumber daya saat runtime. Layanan AWS Dalam tutorial ini, bucket S3 publik menghosting data dan skrip. Ember `amzn-s3-demo-bucket` menyimpan output. 

Untuk menyiapkan peran runtime pekerjaan, pertama-tama buat peran runtime dengan kebijakan kepercayaan sehingga EMR Tanpa Server dapat menggunakan peran baru tersebut. Selanjutnya, lampirkan kebijakan akses S3 yang diperlukan ke peran itu. Langkah-langkah berikut memandu Anda melalui proses tersebut.

------
#### [ Console ]

1. Arahkan ke konsol IAM di[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi di sebelah kiri, pilih **Kebijakan**.

1. Pilih **Buat Kebijakan**.

1. Halaman **Buat kebijakan** terbuka di tab baru. Pilih **editor Kebijakan** sebagai Json dan Tempel kebijakan JSON di bawah ini.
**penting**  
Ganti `amzn-s3-demo-bucket` dalam kebijakan di bawah ini dengan nama bucket aktual yang dibuat di[Siapkan penyimpanan untuk EMR Tanpa Server](#gs-prepare-storage). Ini adalah kebijakan dasar untuk akses S3. Untuk contoh peran runtime pekerjaan lainnya, lihat[Peran runtime Job untuk Amazon EMR Tanpa Server](security-iam-runtime-role.md).

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ReadAccessForEMRSamples",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::*.elasticmapreduce",
           "arn:aws:s3:::*.elasticmapreduce/*"
         ]
       },
       {
         "Sid": "FullAccessToOutputBucket",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:ListBucket",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket",
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       },
       {
         "Sid": "GlueCreateAndReadDataCatalog",
         "Effect": "Allow",
         "Action": [
           "glue:GetDatabase",
           "glue:CreateDatabase",
           "glue:GetDataBases",
           "glue:CreateTable",
           "glue:GetTable",
           "glue:UpdateTable",
           "glue:DeleteTable",
           "glue:GetTables",
           "glue:GetPartition",
           "glue:GetPartitions",
           "glue:CreatePartition",
           "glue:BatchCreatePartition",
           "glue:GetUserDefinedFunctions"
         ],
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

1. Pilih **Berikutnya** untuk memasukkan nama kebijakan Anda, seperti `EMRServerlessS3AndGlueAccessPolicy` dan **Buat kebijakan** 

1. **Di panel navigasi kiri konsol IAM, pilih Peran.**

1. Pilih **Buat peran**.

1. Untuk jenis peran, pilih **Kebijakan kepercayaan khusus** dan tempel kebijakan kepercayaan berikut. Ini memungkinkan pekerjaan yang dikirimkan ke aplikasi Amazon EMR Tanpa Server Anda untuk mengakses orang lain Layanan AWS atas nama Anda.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "sts:AssumeRole"
         ],
         "Resource": "arn:aws:iam::123456789012:role/EMRServerlessExecutionRole",
         "Sid": "AllowSTSAssumerole"
       }
     ]
   }
   ```

------

1. Pilih **Berikutnya** untuk menavigasi ke halaman **Tambahkan izin**, lalu pilih **EMRServerlessAndGlueAccessPolicyS3**.

1. Di halaman **Nama, tinjau, dan buat**, untuk **nama Peran**, masukkan nama untuk peran Anda, misalnya,`EMRServerlessS3RuntimeRole`. Untuk membuat peran IAM ini, pilih **Buat peran**.

------
#### [ CLI ]

1. Buat file bernama `emr-serverless-trust-policy.json` yang berisi kebijakan kepercayaan yang akan digunakan untuk peran IAM. File harus berisi kebijakan berikut.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "EMRServerlessTrustPolicy",
         "Action": [
           "sts:AssumeRole"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:iam::123456789012:role/EMRServerlessExecutionRole"
       }
     ]
   }
   ```

------

1. Buat IAM role bernama `EMRServerlessS3RuntimeRole`. Gunakan kebijakan kepercayaan yang Anda buat di langkah sebelumnya.

   ```
   aws iam create-role \
       --role-name EMRServerlessS3RuntimeRole \
       --assume-role-policy-document file://emr-serverless-trust-policy.json
   ```

   Perhatikan ARN di output. Anda menggunakan ARN dari peran baru selama pengajuan pekerjaan, yang disebut setelah ini sebagai. `job-role-arn`

1. Buat file bernama `emr-sample-access-policy.json` yang mendefinisikan kebijakan IAM untuk beban kerja Anda. Ini menyediakan akses baca ke skrip dan data yang disimpan di bucket S3 publik dan akses baca-tulis ke. `amzn-s3-demo-bucket` 
**penting**  
Ganti `amzn-s3-demo-bucket` dalam kebijakan di bawah ini dengan nama bucket sebenarnya yang dibuat di[Siapkan penyimpanan untuk EMR Tanpa Server](#gs-prepare-storage).. Ini adalah kebijakan dasar untuk akses AWS Glue dan S3. Untuk contoh peran runtime pekerjaan lainnya, lihat[Peran runtime Job untuk Amazon EMR Tanpa Server](security-iam-runtime-role.md).

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ReadAccessForEMRSamples",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::*.elasticmapreduce",
           "arn:aws:s3:::*.elasticmapreduce/*"
         ]
       },
       {
         "Sid": "FullAccessToOutputBucket",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:ListBucket",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket",
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       },
       {
         "Sid": "GlueCreateAndReadDataCatalog",
         "Effect": "Allow",
         "Action": [
           "glue:GetDatabase",
           "glue:CreateDatabase",
           "glue:GetDataBases",
           "glue:CreateTable",
           "glue:GetTable",
           "glue:UpdateTable",
           "glue:DeleteTable",
           "glue:GetTables",
           "glue:GetPartition",
           "glue:GetPartitions",
           "glue:CreatePartition",
           "glue:BatchCreatePartition",
           "glue:GetUserDefinedFunctions"
         ],
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

1. Buat kebijakan IAM bernama `EMRServerlessS3AndGlueAccessPolicy` dengan file kebijakan yang Anda buat di **Langkah 3**. Catat ARN di output, karena Anda akan menggunakan ARN dari kebijakan baru di langkah berikutnya. 

   ```
   aws iam create-policy \
       --policy-name EMRServerlessS3AndGlueAccessPolicy \
       --policy-document file://emr-sample-access-policy.json
   ```

   Perhatikan ARN kebijakan baru di output. Anda akan menggantinya `policy-arn` di langkah berikutnya.

1. Lampirkan kebijakan IAM `EMRServerlessS3AndGlueAccessPolicy` ke peran runtime pekerjaan. `EMRServerlessS3RuntimeRole`

   ```
   aws iam attach-role-policy \
       --role-name EMRServerlessS3RuntimeRole \
       --policy-arn policy-arn
   ```

------

# Memulai dengan EMR Serverless dari konsol
<a name="gs-console"></a>

Bagian ini menjelaskan bekerja dengan EMR Tanpa Server, termasuk membuat EMR Studio. Ini juga menjelaskan cara mengirimkan pekerjaan berjalan dan melihat log.

**Topics**
+ [Langkah 1: Buat aplikasi EMR Tanpa Server](#gs-application-console)
+ [Langkah 2: Kirimkan pekerjaan atau beban kerja interaktif](#gs-job-run-console)
+ [Langkah 3: Lihat UI aplikasi dan log](#gs-output-console)
+ [Langkah 4: Membersihkan](#gs-cleanup-console)

## Langkah 1: Buat aplikasi EMR Tanpa Server
<a name="gs-application-console"></a>

Buat aplikasi baru dengan EMR Serverless sebagai berikut.

1. [Masuk ke Konsol Manajemen AWS dan buka konsol EMR Amazon di https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. Di panel navigasi kiri, pilih **EMR** Tanpa Server untuk menavigasi ke halaman arahan EMR Tanpa Server.

1. Untuk membuat atau mengelola aplikasi EMR Tanpa Server, Anda memerlukan EMR Studio UI.
   + Jika Anda sudah memiliki EMR Studio di Wilayah AWS tempat Anda ingin membuat aplikasi, lalu pilih **Kelola aplikasi** untuk menavigasi ke EMR Studio Anda, atau pilih studio yang ingin Anda gunakan. 
   + Jika Anda tidak memiliki EMR Studio di Wilayah AWS tempat Anda ingin membuat aplikasi, pilih **Mulai** lalu Pilih **Buat dan luncurkan** Studio. EMR Serverless membuat EMR Studio untuk Anda sehingga Anda dapat membuat dan mengelola aplikasi.

1. Di UI **Buat studio** yang terbuka di tab baru, masukkan nama, jenis, dan versi rilis untuk aplikasi Anda. Jika Anda hanya ingin menjalankan pekerjaan batch, pilih **Gunakan pengaturan default untuk pekerjaan batch saja**. Untuk beban kerja interaktif, pilih **Gunakan pengaturan default untuk beban kerja interaktif**. Anda juga dapat menjalankan pekerjaan batch pada aplikasi yang diaktifkan interaktif dengan opsi ini. Jika perlu, Anda dapat mengubah pengaturan ini nanti.

   Untuk informasi selengkapnya, lihat [Membuat studio](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-create-studio.html).

1. Pilih **Buat aplikasi** untuk membuat aplikasi pertama Anda. 

Lanjutkan ke bagian berikutnya [Langkah 2: Kirimkan pekerjaan atau beban kerja interaktif](#gs-job-run-console) untuk mengirimkan pekerjaan atau beban kerja interaktif.

## Langkah 2: Kirimkan pekerjaan atau beban kerja interaktif
<a name="gs-job-run-console"></a>

------
#### [ Spark job run ]

Dalam tutorial ini, kita menggunakan PySpark script untuk menghitung jumlah kemunculan kata-kata unik di beberapa file teks. Bucket S3 publik dan hanya-baca menyimpan skrip dan kumpulan data.

**Untuk menjalankan pekerjaan Spark**

1. Unggah skrip sampel `wordcount.py` ke bucket baru Anda dengan perintah berikut.

   ```
   aws s3 cp s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py s3://amzn-s3-demo-bucket/scripts/
   ```

1. Menyelesaikan [Langkah 1: Buat aplikasi EMR Tanpa Server](#gs-application-console) membawa Anda ke halaman **detail Aplikasi** di EMR Studio. Di sana, pilih opsi **Kirim pekerjaan**.

1. Pada halaman **Kirim pekerjaan**, lengkapi yang berikut ini.
   + Di bidang **Nama**, masukkan nama yang ingin Anda panggil job run.
   + Di bidang **peran Runtime**, masukkan nama peran yang Anda buat. [Buat peran runtime pekerjaan](getting-started.md#gs-runtime-role)
   + Di bidang **lokasi Script**, masukkan `s3://amzn-s3-demo-bucket/scripts/wordcount.py` sebagai URI S3.
   + Di bidang **argumen Script**, masukkan`["s3://amzn-s3-demo-bucket/emr-serverless-spark/output"]`.
   + Di bagian **properti Spark**, pilih **Edit sebagai teks** dan masukkan konfigurasi berikut.

     ```
     --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
     ```

1. Untuk memulai pekerjaan, pilih **Kirim pekerjaan**.

1. Di tab **Job runs**, Anda akan melihat pekerjaan baru Anda berjalan dengan status **Running**.

------
#### [ Hive job run ]

Di bagian 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 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;
   ```

1. 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
   ```

1. Menyelesaikan [Langkah 1: Buat aplikasi EMR Tanpa Server](#gs-application-console) membawa Anda ke halaman **detail Aplikasi** di EMR Studio. Di sana, pilih opsi **Kirim pekerjaan**.

1. Pada halaman **Kirim pekerjaan**, lengkapi yang berikut ini.
   + Di bidang **Nama**, masukkan nama yang ingin Anda panggil job run.
   + Di bidang **peran Runtime**, masukkan nama peran yang Anda buat. [Buat peran runtime pekerjaan](getting-started.md#gs-runtime-role)
   + Di bidang **lokasi Script**, masukkan `s3://amzn-s3-demo-bucket/emr-serverless-hive/query/hive-query.ql` sebagai URI S3.
   + Di bagian **Properti sarang**, pilih **Edit sebagai teks**, dan masukkan konfigurasi berikut.

     ```
     --hiveconf hive.log.explain.output=false
     ```
   + Di bagian **konfigurasi Job**, pilih **Edit sebagai JSON**, dan masukkan JSON berikut.

     ```
     {
        "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"
                }
         }]
     }
     ```

1. Untuk memulai pekerjaan, pilih **Kirim pekerjaan**.

1. Di tab **Job runs**, Anda akan melihat pekerjaan baru Anda berjalan dengan status **Running**.

------
#### [ Interactive workload ]

Dengan Amazon EMR 6.14.0 dan yang lebih tinggi, Anda dapat menggunakan notebook yang di-host di EMR Studio untuk menjalankan beban kerja interaktif untuk Spark di EMR Tanpa Server. Untuk informasi selengkapnya termasuk izin dan prasyarat, lihat. [Jalankan beban kerja interaktif dengan EMR Serverless melalui EMR Studio](interactive-workloads.md)

Setelah Anda membuat aplikasi dan menyiapkan izin yang diperlukan, gunakan langkah-langkah berikut untuk menjalankan notebook interaktif dengan EMR Studio:

1. Arahkan ke tab **Workspaces** di EMR Studio. Jika Anda masih perlu mengonfigurasi lokasi penyimpanan Amazon S3 dan [peran layanan EMR Studio](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-service-role.html), pilih tombol **Configure studio** di spanduk di bagian atas layar.

1. Untuk mengakses buku catatan, pilih Workspace atau buat Workspace baru. Gunakan **Quick launch** untuk membuka Workspace Anda di tab baru.

1. Buka tab yang baru dibuka. Pilih ikon **Compute** dari navigasi kiri. **Pilih EMR Tanpa Server sebagai tipe Compute.**

1. Pilih aplikasi berkemampuan interaktif yang Anda buat di bagian sebelumnya.

1. Di bidang **peran Runtime**, masukkan nama peran IAM yang dapat diasumsikan oleh aplikasi EMR Tanpa Server Anda untuk menjalankan pekerjaan. Untuk mempelajari lebih lanjut tentang peran runtime, lihat Peran [runtime Job](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) di Panduan Pengguna Tanpa *Server Amazon EMR*.

1. Pilih **Lampirkan**. Ini mungkin memakan waktu hingga satu menit. Halaman akan disegarkan saat dilampirkan.

1. Pilih kernel dan mulai notebook. Anda juga dapat menelusuri contoh notebook di EMR Serverless dan menyalinnya ke Workspace Anda. Untuk mengakses contoh buku catatan, navigasikan ke **`{...}`**menu di navigasi kiri dan telusuri buku catatan yang ada `serverless` di nama file notebook.

1. Di buku catatan, Anda dapat mengakses tautan log driver dan tautan ke Apache Spark UI, antarmuka waktu nyata yang menyediakan metrik untuk memantau pekerjaan Anda. Untuk informasi selengkapnya, lihat [Memantau aplikasi dan pekerjaan EMR Tanpa Server di Panduan Pengguna](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/app-job-metrics.html) Tanpa Server Amazon *EMR*.

Saat Anda melampirkan aplikasi ke ruang kerja Studio, aplikasi mulai terpicu secara otomatis jika aplikasi tersebut belum berjalan. Anda juga dapat memulai aplikasi terlebih dahulu dan menyiapkannya sebelum Anda melampirkannya ke ruang kerja.

------

## Langkah 3: Lihat UI aplikasi dan log
<a name="gs-output-console"></a>

Untuk melihat UI aplikasi, pertama-tama identifikasi pekerjaan yang dijalankan. Opsi untuk **Spark UI** atau **Hive Tez UI** tersedia di baris pertama opsi untuk pekerjaan itu, berdasarkan jenis pekerjaan. Pilih opsi yang sesuai.

Jika Anda memilih UI Spark, pilih tab **Executors untuk melihat log driver dan pelaksana**. Jika Anda memilih Hive Tez UI, pilih tab **Semua Tugas** untuk melihat log.

Setelah status job run ditampilkan sebagai **Sukses**, Anda dapat melihat output pekerjaan di bucket S3 Anda.

## Langkah 4: Membersihkan
<a name="gs-cleanup-console"></a>

Meskipun aplikasi yang Anda buat harus berhenti otomatis setelah 15 menit tidak aktif, kami tetap menyarankan Anda merilis sumber daya yang tidak ingin Anda gunakan lagi.

Untuk menghapus aplikasi, navigasikan ke halaman **Daftar aplikasi**. Pilih aplikasi yang Anda buat dan pilih **Tindakan → Berhenti** untuk menghentikan aplikasi. Setelah aplikasi dalam `STOPPED` keadaan, pilih aplikasi yang sama dan pilih **Tindakan → Hapus**.

Untuk lebih banyak contoh menjalankan pekerjaan Spark dan Hive, lihat [Menggunakan konfigurasi Spark saat Anda menjalankan pekerjaan EMR Tanpa Server](jobs-spark.md) dan. [Menggunakan konfigurasi Hive saat Anda menjalankan pekerjaan EMR Tanpa Server](jobs-hive.md)

# Memulai dari AWS CLI
<a name="gs-cli"></a>

Memulai EMR Serverless dari perintah AWS CLI with untuk membuat aplikasi, menjalankan pekerjaan, memeriksa output job run, dan menghapus sumber daya Anda.

## Langkah 1: Buat aplikasi EMR Tanpa Server
<a name="gs-application-cli"></a>

Gunakan [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_CreateApplication.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_CreateApplication.html)perintah untuk membuat aplikasi EMR Serverless pertama Anda. Anda perlu menentukan jenis aplikasi dan label rilis Amazon EMR 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 ke[Langkah 2: Kirimkan pekerjaan ke aplikasi EMR Tanpa Server Anda](#gs-job-run-cli), pastikan bahwa aplikasi Anda telah mencapai `CREATED` status dengan [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html)API.

```
aws emr-serverless get-application \
    --application-id application-id
```

EMR Tanpa 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 tersebut. Untuk mempelajari selengkapnya tentang opsi ini, lihat [Mengkonfigurasi aplikasi saat bekerja dengan EMR Serverless](application-capacity.md).

## Langkah 2: Kirimkan pekerjaan ke aplikasi EMR Tanpa Server Anda
<a name="gs-job-run-cli"></a>

Sekarang aplikasi EMR Serverless 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/
   ```

1. Dalam perintah berikut, ganti `application-id` dengan ID aplikasi Anda. Gantikan `job-role-arn` dengan peran runtime ARN yang Anda buat. [Buat peran runtime pekerjaan](getting-started.md#gs-runtime-role) Gantilah *`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 Anda di mana 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"
           }
       }'
   ```

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**

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;
   ```

1. 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
   ```

1. Dalam perintah berikut, ganti `application-id` dengan ID aplikasi Anda sendiri. Gantikan `job-role-arn` dengan peran runtime ARN yang Anda buat. [Buat peran runtime pekerjaan](getting-started.md#gs-runtime-role) 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, di mana EMR Serverless dapat menyalin file output 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"
              }
           }
       }'
   ```

1. 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
<a name="gs-output-cli"></a>

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 ke`s3://amzn-s3-demo-bucket/emr-serverless-spark/logs`, Anda dapat menemukan log untuk pekerjaan khusus ini berjalan di bawah`s3://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 ke`s3://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 ke`s3://amzn-s3-demo-bucket/emr-serverless-hive/logs`, Anda dapat menemukan log untuk pekerjaan khusus ini berjalan di bawah`s3://amzn-s3-demo-bucket/emr-serverless-hive/logs/applications/application-id/jobs/job-run-id`. 

Untuk aplikasi Hive, EMR Serverless terus mengunggah driver Hive ke folder, dan tugas Tez log ke folder, `HIVE_DRIVER` dari tujuan log S3 Anda`TEZ_TASK`. 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
<a name="gs-cleanup-cli"></a>

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
<a name="delete-application-cli"></a>

Untuk menghapus aplikasi, gunakan perintah berikut. 

```
aws emr-serverless delete-application \
    --application-id application-id
```

### Hapus bucket log S3 Anda
<a name="delete-s3-bucket-cli"></a>

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 EMR Tanpa Server](getting-started.md#gs-prepare-storage)

```
aws s3 rm s3://amzn-s3-demo-bucket --recursive
aws s3api delete-bucket --bucket amzn-s3-demo-bucket
```

### Hapus peran runtime pekerjaan Anda
<a name="delete-runtime-role-cli"></a>

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 [Menggunakan konfigurasi Spark saat Anda menjalankan pekerjaan EMR Tanpa Server](jobs-spark.md) dan. [Menggunakan konfigurasi Hive saat Anda menjalankan pekerjaan EMR Tanpa Server](jobs-hive.md)