

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

# Plugin Penyimpanan Cloud Shuffle untuk Apache Spark
<a name="cloud-shuffle-storage-plugin"></a>

Plugin Cloud Shuffle Storage adalah plugin Apache Spark yang kompatibel dengan [`ShuffleDataIO`API](https://github.com/apache/spark/blob/master/core/src/main/java/org/apache/spark/shuffle/api/ShuffleDataIO.java) yang memungkinkan penyimpanan data shuffle pada sistem penyimpanan cloud (seperti Amazon S3). Ini membantu Anda untuk menambah atau mengganti kapasitas penyimpanan disk lokal untuk operasi shuffle besar, biasanya dipicu oleh transformasi seperti`join`,`reduceByKey`, `groupByKey` dan `repartition` dalam aplikasi Spark Anda, sehingga mengurangi kegagalan umum atau price/performance dislokasi pekerjaan analitik data tanpa server Anda dan pipeline.

**AWS Glue**  
AWS Glueversi 3.0 dan 4.0 dilengkapi dengan plugin yang sudah diinstal sebelumnya dan siap untuk mengaktifkan pengocokan ke Amazon S3 tanpa langkah tambahan. Untuk informasi selengkapnya, lihat [Plugin AWS Glue Spark shuffle dengan Amazon S3](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-shuffle-manager.html) untuk mengaktifkan fitur untuk aplikasi Spark Anda.

**Lingkungan Spark lainnya**  
Plugin ini memerlukan konfigurasi Spark berikut untuk disetel di lingkungan Spark lainnya:
+ `--conf spark.shuffle.sort.io.plugin.class=com.amazonaws.spark.shuffle.io.cloud.ChopperPlugin`: Ini menginformasikan Spark untuk menggunakan plugin ini untuk Shuffle IO.
+ `--conf spark.shuffle.storage.path=s3://{{bucket-name}}/{{shuffle-file-dir}}`: Jalur tempat file shuffle Anda akan disimpan.

**catatan**  
Plugin menimpa satu kelas inti Spark. Akibatnya, toples plugin perlu dimuat sebelum stoples Spark. Anda dapat melakukan ini menggunakan `userClassPathFirst` di lingkungan YARN on-prem jika plugin digunakan di luar. AWS Glue

## Bundling plugin dengan aplikasi Spark Anda
<a name="cloud-shuffle-storage-plugin-bundling"></a>

Anda dapat menggabungkan plugin dengan aplikasi Spark dan distribusi Spark Anda (versi 3.1 ke atas) dengan menambahkan ketergantungan plugin di Maven Anda `pom.xml` sambil mengembangkan aplikasi Spark Anda secara lokal. Untuk informasi lebih lanjut tentang plugin dan versi Spark, lihat[Versi plugin](#cloud-shuffle-storage-plugin-versions).

```
<repositories>
   ...
    <repository>
        <id>aws-glue-etl-artifacts</id>
        <url>https://aws-glue-etl-artifacts.s3.amazonaws.com/release/ </url>
    </repository>
</repositories>
...
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>chopper-plugin</artifactId>
    <version>3.1-amzn-LATEST</version>
</dependency>
```

Anda dapat mengunduh binari dari artefak AWS Glue Maven secara langsung dan memasukkannya ke dalam aplikasi Spark Anda sebagai berikut.

```
#!/bin/bash
sudo wget -v https://aws-glue-etl-artifacts.s3.amazonaws.com/release/com/amazonaws/chopper-plugin/3.1-amzn-LATEST/chopper-plugin-3.1-amzn-LATEST.jar -P /usr/lib/spark/jars/
```

Contoh spark-submit

```
spark-submit --deploy-mode cluster \
--conf spark.shuffle.storage.s3.path=s3://<ShuffleBucket>/<shuffle-dir> \
--conf spark.driver.extraClassPath={{<Path to plugin jar>}} \ 
--conf spark.executor.extraClassPath={{<Path to plugin jar>}} \
--class <your test class name> s3://{{<ShuffleBucket>}}/{{<Your application jar>}} \
```

## Konfigurasi opsional
<a name="cloud-shuffle-storage-plugin-optional"></a>

Ini adalah nilai konfigurasi opsional yang mengontrol perilaku shuffle Amazon S3. 
+ `spark.shuffle.storage.s3.enableServerSideEncryption`: Enable/disable S3 SSE untuk file acak dan tumpahan. Nilai default-nya adalah `true`.
+ `spark.shuffle.storage.s3.serverSideEncryption.algorithm`: Algoritma SSE yang akan digunakan. Nilai default-nya adalah `AES256`.
+ `spark.shuffle.storage.s3.serverSideEncryption.kms.key`: ARN kunci KMS saat SSE aws:kms diaktifkan.

Seiring dengan konfigurasi ini, Anda mungkin perlu mengatur konfigurasi seperti `spark.hadoop.fs.s3.enableServerSideEncryption` dan **konfigurasi khusus lingkungan lainnya untuk memastikan enkripsi yang sesuai diterapkan** untuk kasus penggunaan Anda.

## Versi plugin
<a name="cloud-shuffle-storage-plugin-versions"></a>

Plugin ini didukung untuk versi Spark yang terkait dengan setiap AWS Glue versi. Tabel berikut menunjukkan AWS Glue versi, versi Spark dan versi plugin terkait dengan lokasi Amazon S3 untuk biner perangkat lunak plugin.


| Versi AWS Glue | Versi Spark | Versi plugin | Lokasi Amazon S3 | 
| --- | --- | --- | --- | 
| 3.0 | 3.1 | 3.1-AMZN-Terbaru | s3:///aws-glue-etl-artifacts-plugin-3.1-AMZN-terbaru.jar release/com/amazonaws/chopper-plugin/3.1-amzn-0/chopper | 
| 4.0 | 3.3 | 3.3-AMZN-Terbaru | s3:///aws-glue-etl-artifacts-plugin-3.3-AMZN-terbaru.jar release/com/amazonaws/chopper-plugin/3.3-amzn-0/chopper | 

## Lisensi
<a name="cloud-shuffle-storage-plugin-binary-license"></a>

Biner perangkat lunak untuk plugin ini dilisensikan di bawah Lisensi Apache-2.0.