

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

# Mengontrol Instans Spark EMR Amazon Menggunakan Notebook
<a name="nbi-lifecycle-config-emr"></a>

**penting**  
Kebijakan IAM khusus yang memungkinkan Amazon SageMaker Studio atau Amazon SageMaker Studio Classic membuat SageMaker sumber daya Amazon juga harus memberikan izin untuk menambahkan tag ke sumber daya tersebut. Izin untuk menambahkan tag ke sumber daya diperlukan karena Studio dan Studio Classic secara otomatis menandai sumber daya apa pun yang mereka buat. Jika kebijakan IAM memungkinkan Studio dan Studio Classic membuat sumber daya tetapi tidak mengizinkan penandaan, kesalahan "AccessDenied" dapat terjadi saat mencoba membuat sumber daya. Untuk informasi selengkapnya, lihat [Berikan izin untuk menandai sumber daya AI SageMaker](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS kebijakan terkelola untuk Amazon SageMaker AI](security-iam-awsmanpol.md)yang memberikan izin untuk membuat SageMaker sumber daya sudah menyertakan izin untuk menambahkan tag saat membuat sumber daya tersebut.

Anda dapat menggunakan instance notebook yang dibuat dengan skrip konfigurasi siklus hidup kustom untuk mengakses AWS layanan dari buku catatan Anda. Misalnya, Anda dapat membuat skrip yang memungkinkan Anda menggunakan notebook dengan Sparkmagic untuk mengontrol AWS sumber daya lain, seperti instans EMR Amazon. Anda kemudian dapat menggunakan instans EMR Amazon untuk memproses data Anda alih-alih menjalankan analisis data pada notebook Anda. Ini memungkinkan Anda membuat instance notebook yang lebih kecil karena Anda tidak akan menggunakan instance untuk memproses data. Ini sangat membantu ketika Anda memiliki kumpulan data besar yang memerlukan instance notebook besar untuk memproses data.

Prosesnya membutuhkan tiga prosedur menggunakan konsol Amazon SageMaker AI:
+ Buat instans Amazon EMR Spark
+ Buat Notebook Jupyter
+ Uji koneksi EMR Notebook-to-Amazon

**Untuk membuat instans Amazon EMR Spark yang dapat dikontrol dari notebook menggunakan Sparkmagic**

1. Buka konsol Amazon EMR. di [https://console.aws.amazon.com/elasticmapreduce/](https://console.aws.amazon.com/elasticmapreduce/).

1. Di panel navigasi, pilih **Buat cluster**.

1. Pada halaman **Buat Cluster - Opsi Cepat**, di bawah **konfigurasi Perangkat Lunak**, pilih **Spark: Spark 2.4.4 di Hadoop 2.8.5 YARN dengan Ganglia** 3.7.2 dan Zeppelin 0.8.2.

1. Tetapkan parameter tambahan pada halaman dan kemudian pilih **Buat cluster**.

1. Pada halaman **Cluster**, pilih nama cluster yang Anda buat. Perhatikan **DNS Publik Master**, grup **keamanan master EMR**, dan nama VPC serta subnet ID tempat cluster EMR dibuat. Anda akan menggunakan nilai-nilai ini saat membuat buku catatan.

**Untuk membuat notebook yang menggunakan Sparkmagic untuk mengontrol instans Amazon EMR Spark**

1. Buka konsol Amazon SageMaker AI di [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Di panel navigasi, di bawah **instance Notebook**, pilih **Buat** buku catatan.

1. Masukkan nama instance notebook dan pilih jenis instans.

1. Pilih **Konfigurasi tambahan**, lalu, di bawah **Konfigurasi Siklus Hidup**, pilih **Buat konfigurasi siklus hidup baru**.

1. Tambahkan kode berikut ke skrip konfigurasi siklus hidup:

   ```
   # OVERVIEW
   # This script connects an Amazon EMR cluster to an Amazon SageMaker notebook instance that uses Sparkmagic.
   #
   # Note that this script will fail if the Amazon EMR cluster's master node IP address is not reachable.
   #   1. Ensure that the EMR master node IP is resolvable from the notebook instance.
   #      One way to accomplish this is to have the notebook instance and the Amazon EMR cluster in the same subnet.
   #   2. Ensure the EMR master node security group provides inbound access from the notebook instance security group.
   #       Type        - Protocol - Port - Source
   #       Custom TCP  - TCP      - 8998 - $NOTEBOOK_SECURITY_GROUP
   #   3. Ensure the notebook instance has internet connectivity to fetch the SparkMagic example config.
   #
   # https://aws.amazon.com/blogs/machine-learning/build-amazon-sagemaker-notebooks-backed-by-spark-in-amazon-emr/
   
   # PARAMETERS
   EMR_MASTER_IP=your.emr.master.ip
   
   
   cd /home/ec2-user/.sparkmagic
   
   echo "Fetching Sparkmagic example config from GitHub..."
   wget https://raw.githubusercontent.com/jupyter-incubator/sparkmagic/master/sparkmagic/example_config.json
   
   echo "Replacing EMR master node IP in Sparkmagic config..."
   sed -i -- "s/localhost/$EMR_MASTER_IP/g" example_config.json
   mv example_config.json config.json
   
   echo "Sending a sample request to Livy.."
   curl "$EMR_MASTER_IP:8998/sessions"
   ```

1. Di `PARAMETERS` bagian skrip, ganti `your.emr.master.ip` dengan nama Master Public DNS untuk instans EMR Amazon.

1. Pilih **Buat konfigurasi**.

1. Pada halaman **Buat buku catatan**, pilih **Jaringan - opsional**.

1. Pilih VPC dan subnet tempat instans EMR Amazon berada.

1. Pilih grup keamanan yang digunakan oleh simpul master EMR Amazon.

1. Pilih **Buat instans notebook**.

Saat instance notebook sedang dibuat, statusnya **Tertunda**. Setelah instance dibuat dan skrip konfigurasi siklus hidup berhasil dijalankan, statusnya adalah. **InService**

**catatan**  
Jika instance notebook tidak dapat terhubung ke instans EMR Amazon, SageMaker AI tidak dapat membuat instance notebook. Sambungan dapat gagal jika instans EMR Amazon dan notebook tidak berada dalam VPC dan subnet yang sama, jika grup keamanan master EMR Amazon tidak digunakan oleh notebook, atau jika nama Master Public DNS dalam skrip salah. 

**Untuk menguji koneksi antara instans EMR Amazon dan notebook**

1.  Saat status notebook **InService**, pilih **Buka Jupyter** untuk membuka buku catatan.

1. Pilih **Baru**, lalu pilih **Sparkmagic () PySpark**.

1. Di sel kode, masukkan **%%info** lalu jalankan sel.

   Outputnya harus mirip dengan yang berikut

   ```
   Current session configs: {'driverMemory': '1000M', 'executorCores': 2, 'kind': 'pyspark'}
                       No active sessions.
   ```