

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

# Pekerjaan streaming untuk memproses data yang dialirkan secara terus menerus
<a name="jobs-streaming"></a>

Pekerjaan streaming di EMR Serverless adalah mode pekerjaan yang memungkinkan Anda menganalisis dan memproses data streaming dalam waktu dekat. Pekerjaan yang sudah berjalan lama ini melakukan polling data streaming dan terus memproses hasil saat data tiba. Pekerjaan streaming paling cocok untuk tugas yang memerlukan pemrosesan data waktu nyata, seperti analitik dekat waktu nyata, deteksi penipuan, dan mesin rekomendasi. Pekerjaan streaming tanpa server EMR memberikan pengoptimalan, seperti ketahanan kerja bawaan, pemantauan waktu nyata, manajemen log yang ditingkatkan, dan integrasi dengan konektor streaming.

Berikut ini adalah beberapa kasus penggunaan dengan pekerjaan streaming:
+ **Near real-time analytics** — pekerjaan streaming di Amazon EMR Serverless memungkinkan Anda memproses data streaming hampir real-time, sehingga Anda dapat melakukan analitik real-time pada aliran data berkelanjutan, seperti data log, data sensor, atau data clickstream untuk memperoleh wawasan dan membuat keputusan tepat waktu berdasarkan informasi terbaru.
+ **Deteksi penipuan** — gunakan pekerjaan streaming untuk menjalankan deteksi penipuan real-time dalam transaksi keuangan, operasi kartu kredit, atau aktivitas online saat Anda menganalisis aliran data dan mengidentifikasi pola atau anomali yang mencurigakan saat terjadi.
+ **Mesin rekomendasi** — pekerjaan streaming dapat memproses data aktivitas pengguna dan memperbarui model rekomendasi. Melakukan hal itu membuka kemungkinan untuk rekomendasi yang dipersonalisasi dan real-time berdasarkan perilaku dan preferensi.
+ **Analisis media sosial** — pekerjaan streaming dapat memproses data media sosial, seperti tweet, komentar, dan posting, sehingga organisasi dapat memantau tren, analisis sentimen, dan mengelola reputasi merek dalam waktu dekat.
+ **Analisis Internet of Things (IoT)** — pekerjaan streaming dapat menangani dan menganalisis aliran data berkecepatan tinggi dari perangkat IoT, sensor, dan mesin yang terhubung, jadi jalankan deteksi anomali, pemeliharaan prediktif, dan kasus penggunaan analitik IoT lainnya. 
+ **Analisis Clickstream** — pekerjaan streaming dapat memproses dan menganalisis data clickstream dari situs web atau aplikasi seluler. Bisnis yang menggunakan data tersebut dapat menjalankan analitik untuk mempelajari lebih lanjut tentang perilaku pengguna, mempersonalisasi pengalaman pengguna, dan mengoptimalkan kampanye pemasaran.
+ **Pemantauan dan analisis log** — pekerjaan streaming juga dapat memproses data log dari server, aplikasi, dan perangkat jaringan. Ini memberi Anda deteksi anomali, pemecahan masalah, serta kesehatan dan kinerja sistem.

**Manfaat utama**

Pekerjaan streaming di EMR Tanpa Server secara otomatis memberikan *ketahanan kerja, yang* merupakan kombinasi dari faktor-faktor berikut:
+ **Coba lagi otomatis** - EMR Tanpa Server secara otomatis mencoba ulang pekerjaan apa pun yang gagal tanpa masukan manual dari Anda.
+ **Ketahanan Availability Zone (AZ)** — EMR Tanpa Server secara otomatis mengalihkan pekerjaan streaming ke AZ yang sehat jika AZ asli mengalami masalah.
+ **Manajemen log:**
  + **Rotasi log** — untuk manajemen penyimpanan disk yang lebih efisien, EMR Serverless secara berkala memutar log untuk pekerjaan streaming yang lama. Melakukannya mencegah akumulasi log yang mungkin menghabiskan semua ruang disk.
  + **Pemadatan log** - membantu Anda mengelola dan mengoptimalkan file log secara efisien dalam kegigihan terkelola. Pemadatan juga meningkatkan pengalaman debug saat Anda menggunakan server riwayat percikan terkelola.

**Sumber data dan sink data yang didukung**

EMR Serverless bekerja dengan sejumlah sumber data input dan sink data output:
+ Sumber data input yang didukung - Amazon Kinesis Data Streams, Amazon Managed Streaming untuk Apache Kafka Kafka, dan cluster Apache Kafka yang dikelola sendiri. Secara default, Amazon EMR merilis 7.1.0 dan yang lebih tinggi menyertakan konektor [Amazon Kinesis Data Streams](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-structured-streaming-kinesis.html), jadi Anda tidak perlu membuat atau mengunduh paket tambahan apa pun.
+ Sinks data keluaran yang didukung - Tabel Katalog Data AWS Glue, Amazon S3, Amazon Redshift, MySQL, PostgreSQL Oracle, Oracle, Microsoft SQL, Apache Iceberg, Delta Lake, dan Apache Hudi.

## Pertimbangan dan batasan
<a name="jobs-spark-streaming-considerations"></a>

Saat Anda menggunakan pekerjaan streaming, ingatlah pertimbangan dan batasan berikut.
+ Pekerjaan streaming didukung dengan [rilis Amazon EMR 7.1.0](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-710-release.html) dan yang lebih tinggi.
+ EMR Serverless mengharapkan pekerjaan streaming berjalan untuk waktu yang lama, sehingga Anda tidak dapat mengatur batas waktu eksekusi untuk membatasi runtime pekerjaan.
+ Pekerjaan streaming hanya kompatibel dengan mesin Spark, yang dibangun di atas [kerangka kerja streaming terstruktur](https://spark.apache.org/streaming/).
+ EMR Tanpa Server mencoba ulang pekerjaan streaming tanpa batas waktu, dan Anda tidak dapat menyesuaikan jumlah upaya maksimum. Pencegahan thrash secara otomatis disertakan untuk menghentikan percobaan ulang pekerjaan jika jumlah upaya yang gagal telah melampaui ambang batas yang ditetapkan selama jendela per jam. Ambang batas default adalah lima upaya gagal selama satu jam. Anda dapat mengonfigurasi ambang batas ini menjadi antara 1 dan 10 upaya. Untuk informasi lebih lanjut, lihat [Ketahanan Job](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/SECTION-jobs-resiliency.xml.html).
+ Pekerjaan streaming memiliki pos pemeriksaan untuk menghemat status dan kemajuan runtime, sehingga EMR Tanpa Server dapat melanjutkan pekerjaan streaming dari pos pemeriksaan terbaru. Untuk informasi selengkapnya, lihat [Memulihkan dari kegagalan dengan Checkpointing di dokumentasi](https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#recovering-from-failures-with-checkpointing) Apache Spark.

# Memulai pekerjaan streaming
<a name="jobs-spark-streaming-getting-started"></a>

Lihat petunjuk berikut untuk mempelajari cara memulai pekerjaan streaming.

1. Ikuti [Memulai Amazon EMR Tanpa Server untuk membuat aplikasi](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html). Perhatikan bahwa aplikasi Anda harus menjalankan [Amazon EMR rilis 7.1.0](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-710-release.html) atau yang lebih tinggi.

1. Setelah aplikasi Anda siap, atur `mode` parameter `STREAMING` untuk mengirimkan pekerjaan streaming, mirip dengan AWS CLI contoh berikut.

   ```
   aws emr-serverless start-job-run \
   --application-id <APPPLICATION_ID> \
   --execution-role-arn <JOB_EXECUTION_ROLE> \
   --mode 'STREAMING' \
   --job-driver '{
       "sparkSubmit": {
           "entryPoint": "s3://<streaming script>",
           "entryPointArguments": ["s3://<DOC-EXAMPLE-BUCKET-OUTPUT>/output"],
           "sparkSubmitParameters": "--conf spark.executor.cores=4
               --conf spark.executor.memory=16g 
               --conf spark.driver.cores=4
               --conf spark.driver.memory=16g 
               --conf spark.executor.instances=3"
       }
   }'
   ```

# Konektor streaming yang didukung
<a name="jobs-spark-streaming-connectors"></a>

Konektor streaming memfasilitasi membaca data dari sumber streaming dan juga dapat menulis data ke wastafel streaming.

Berikut ini adalah konektor streaming yang didukung:

**Konektor Amazon Kinesis Data Streams**

Konektor [Amazon Kinesis Data](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-structured-streaming-kinesis.html) Streams untuk Apache Spark memungkinkan pembuatan aplikasi streaming dan pipeline yang menggunakan data dari dan menulis data ke Amazon Kinesis Data Streams. Konektor mendukung peningkatan konsumsi fan-out dengan kecepatan throughput baca khusus hingga 2MB/detik per pecahan. Secara default, Amazon EMR Serverless 7.1.0 dan yang lebih tinggi menyertakan konektor, jadi Anda tidak perlu membuat atau mengunduh paket tambahan apa pun. Untuk informasi lebih lanjut tentang konektor, lihat [ spark-sql-kinesis-connectorhalaman di GitHub](https://github.com/awslabs/spark-sql-kinesis-connector/).

Berikut ini adalah contoh bagaimana memulai pekerjaan dengan ketergantungan konektor Kinesis Data Streams.

```
aws emr-serverless start-job-run \
--application-id <APPLICATION_ID> \
--execution-role-arn <JOB_EXECUTION_ROLE> \
--mode 'STREAMING' \
--job-driver '{
    "sparkSubmit": {
        "entryPoint": "s3://<Kinesis-streaming-script>",
        "entryPointArguments": ["s3://<DOC-EXAMPLE-BUCKET-OUTPUT>/output"],
        "sparkSubmitParameters": "--conf spark.executor.cores=4
                --conf spark.executor.memory=16g 
                --conf spark.driver.cores=4
                --conf spark.driver.memory=16g 
                --conf spark.executor.instances=3
                --jars /usr/share/aws/kinesis/spark-sql-kinesis/lib/spark-streaming-sql-kinesis-connector.jar"
    }
}'
```

Untuk terhubung ke Kinesis Data Streams, konfigurasikan aplikasi EMR Tanpa Server dengan akses VPC dan gunakan titik akhir VPC untuk memungkinkan akses pribadi. atau gunakan NAT Gateway untuk mendapatkan akses publik. Untuk informasi selengkapnya, lihat [Mengonfigurasi akses VPC](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/vpc-access.html). Anda juga harus memastikan bahwa peran runtime pekerjaan Anda memiliki izin baca dan tulis yang diperlukan untuk mengakses aliran data yang diperlukan. Untuk mempelajari lebih lanjut tentang cara mengonfigurasi peran runtime pekerjaan, lihat peran [runtime Job untuk Amazon EMR](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) Tanpa Server. Untuk daftar lengkap semua izin yang diperlukan, lihat [spark-sql-kinesis-connector halaman di GitHub](https://github.com/awslabs/spark-sql-kinesis-connector/?tab=readme-ov-file#how-to-use-it).

**Konektor Apache Kafka**

Konektor Apache Kafka untuk streaming terstruktur Spark adalah konektor open-source dari komunitas Spark dan tersedia di repositori Maven. Konektor ini memfasilitasi aplikasi streaming terstruktur Spark untuk membaca data dari dan menulis data ke Apache Kafka yang dikelola sendiri dan Amazon Managed Streaming for Apache Kafka. Untuk informasi lebih lanjut tentang konektor, lihat [Panduan Integrasi Streaming Terstruktur\$1Kafka](https://spark.apache.org/docs/latest/structured-streaming-kafka-integration.html) dalam dokumentasi Apache Spark.

Contoh berikut menunjukkan cara memasukkan konektor Kafka dalam permintaan menjalankan pekerjaan Anda.

```
aws emr-serverless start-job-run \
--application-id <APPLICATION_ID> \
--execution-role-arn <JOB_EXECUTION_ROLE> \
--mode 'STREAMING' \
--job-driver '{
    "sparkSubmit": {
        "entryPoint": "s3://<Kafka-streaming-script>",
        "entryPointArguments": ["s3://<DOC-EXAMPLE-BUCKET-OUTPUT>/output"],
        "sparkSubmitParameters": "--conf spark.executor.cores=4
                --conf spark.executor.memory=16g 
                --conf spark.driver.cores=4
                --conf spark.driver.memory=16g 
                --conf spark.executor.instances=3
                --packages org.apache.spark:spark-sql-kafka-0-10_2.12:<KAFKA_CONNECTOR_VERSION>"
    }
}'
```

Versi konektor Apache Kafka tergantung pada versi rilis EMR Serverless Anda dan versi Spark yang sesuai. Untuk menemukan versi Kafka yang benar, lihat lihat lihat lihat Panduan [Streaming Terstruktur\$1Integrasi Kafka](https://spark.apache.org/docs/latest/structured-streaming-kafka-integration.html).

Untuk menggunakan Amazon Managed Streaming for Apache Kafka Kafka dengan autentikasi IAM, sertakan dependensi lain untuk mengaktifkan konektor Kafka terhubung ke Amazon MSK dengan IAM. Untuk informasi lebih lanjut, lihat [aws-msk-iam-auth repositori](https://github.com/aws/aws-msk-iam-auth) di. GitHub Anda juga harus memastikan bahwa peran runtime pekerjaan memiliki izin IAM yang diperlukan. Contoh berikut menunjukkan bagaimana menggunakan konektor dengan otentikasi IAM.

```
aws emr-serverless start-job-run \
--application-id <APPLICATION_ID> \
--execution-role-arn <JOB_EXECUTION_ROLE> \
--mode 'STREAMING' \
--job-driver '{
    "sparkSubmit": {
        "entryPoint": "s3://<Kafka-streaming-script>",
        "entryPointArguments": ["s3://<DOC-EXAMPLE-BUCKET-OUTPUT>/output"],
        "sparkSubmitParameters": "--conf spark.executor.cores=4
                --conf spark.executor.memory=16g 
                --conf spark.driver.cores=4
                --conf spark.driver.memory=16g 
                --conf spark.executor.instances=3
                --packages org.apache.spark:spark-sql-kafka-0-10_2.12:<KAFKA_CONNECTOR_VERSION>,software.amazon.msk:aws-msk-iam-auth:<MSK_IAM_LIB_VERSION>"
    }
}'
```

Untuk menggunakan konektor Kafka dan pustaka otentikasi IAM dari Amazon MSK, konfigurasikan aplikasi EMR Tanpa Server dengan akses VPC. Subnet Anda harus memiliki akses Internet dan menggunakan NAT Gateway untuk mengakses dependensi Maven. Untuk informasi selengkapnya, lihat [Mengonfigurasi akses VPC](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/vpc-access.html). Subnet harus memiliki konektivitas jaringan untuk mengakses cluster Kafka. Ini benar terlepas dari apakah cluster Kafka Anda dikelola sendiri atau jika Anda menggunakan Amazon Managed Streaming for Apache Kafka. 

# Manajemen log pekerjaan streaming
<a name="jobs-spark-streaming-log-management"></a>

Pekerjaan streaming mendukung rotasi log untuk log aplikasi Spark dan log peristiwa, dan pemadatan log untuk log peristiwa Spark. Ini membantu Anda mengelola sumber daya Anda secara efektif.

**Rotasi log**

Pekerjaan streaming mendukung rotasi log untuk log aplikasi Spark dan log peristiwa. Rotasi log mencegah pekerjaan streaming panjang menghasilkan file log besar yang mungkin menghabiskan semua ruang disk Anda yang tersedia. Rotasi log membantu Anda menghemat penyimpanan disk dan mencegah kegagalan pekerjaan karena ruang disk yang rendah. Untuk informasi lebih lanjut, lihat [Rotating logs](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/rotating-logs.html). 

**Pemadatan log**

Pekerjaan streaming juga mendukung pemadatan log untuk log peristiwa Spark setiap kali logging terkelola tersedia. Untuk detail selengkapnya tentang logging terkelola, lihat [Logging dengan penyimpanan terkelola](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/logging.html#jobs-log-storage-managed-storage). Pekerjaan streaming dapat berjalan untuk waktu yang lama, dan jumlah data acara dapat bertambah dari waktu ke waktu dan secara signifikan meningkatkan ukuran file log. Spark History Server membaca dan memuat peristiwa ini ke dalam memori untuk UI aplikasi Spark. Proses ini dapat menyebabkan latensi dan biaya tinggi, terutama jika log peristiwa yang disimpan di Amazon S3 sangat besar. 

Pemadatan log mengurangi ukuran log peristiwa, sehingga Server Riwayat Spark tidak perlu memuat lebih dari 1 GB log peristiwa kapan saja. Untuk informasi lebih lanjut, lihat [Pemantauan dan Instrumentasi](https://spark.apache.org/docs/latest/monitoring.html) dalam dokumentasi Apache Spark.