

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

# Menginstal dan menggunakan kernel dan pustaka di EMR Studio
<a name="emr-managed-notebooks-installing-libraries-and-kernels"></a>

Setiap EMR notebook dilengkapi dengan satu set perpustakaan dan kernel pra-instal. Anda dapat menginstal pustaka dan kernel tambahan dalam cluster EMR jika cluster memiliki akses ke repositori tempat kernel dan pustaka berada. Misalnya, untuk klaster di subnet privat, Anda mungkin perlu mengonfirmasi terjemahan alamat jaringan (NAT) dan menyediakan jalur bagi klaster untuk mengakses repositori PyPI publik untuk menginstal perpustakaan. Untuk informasi lebih lanjut tentang konfigurasi akses eksternal untuk konfigurasi jaringan yang berbeda, lihat [Skenario dan contoh](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenarios.html) di *Panduan Pengguna Amazon VPC*.

**catatan**  
Notebook EMR tersedia sebagai Ruang Kerja EMR Studio di konsol. Tom ** ** bol Buat Ruang Kerja di konsol memungkinkan Anda membuat buku catatan baru. Untuk mengakses atau membuat Ruang Kerja, pengguna Buku Catatan EMR memerlukan izin peran IAM tambahan. Untuk informasi selengkapnya, lihat Notebook [ Amazon EMR adalah Ruang Kerja Amazon EMR Studio di konsol ](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-migration.html) dan konsol [ Amazon EMR. ](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html)<a name="emr-managed-notebooks-serverless"></a>

Aplikasi EMR Serverless dilengkapi dengan pustaka pra-instal berikut untuk Python dan: PySpark 
+ **Pust ** aka Python — ggplot matplotlibnumpy,pandas,plotly,bokeh,scikit-learn,scipy, scipy
+ **PySpark perpustakaan ** — ggplotmatplotlib,numpy,pandas,plotly,bokeh,scikit-learn,scipy, scipy

## Menginstal kernel dan pustaka Python pada node utama cluster
<a name="emr-managed-notebooks-cluster-kernel"></a>

Dengan rilis Amazon EMR versi 5.30.0 dan yang lebih baru, tidak termasuk 6.0.0, Anda dapat menginstal pustaka dan kernel Python tambahan pada node utama cluster. Setelah instalasi, kernel dan perpustakaan ini tersedia untuk setiap pengguna yang menjalankan EMR notebook yang melekat pada klaster. Pustaka Python yang diinstal dengan cara ini hanya tersedia untuk proses yang berjalan pada node utama. Perpustakaan tidak diinstal pada simpul inti atau tugas dan tidak tersedia untuk eksekutor yang berjalan pada simpul tersebut.

**catatan**  
Untuk Amazon EMR versi 5.30.1, 5.31.0, dan 6.1.0, Anda harus mengambil langkah-langkah tambahan untuk menginstal kernel dan pustaka pada node utama cluster.   
Untuk mengaktifkan fitur, lakukan hal berikut ini:  
Pastikan bahwa kebijakan izin yang dilampirkan ke peran layanan untuk EMR Notebooks mengizinkan tindakan berikut ini:  
`elasticmapreduce:ListSteps`  
Untuk informasi selengkapnya, lihat [Peran layanan untuk EMR Notebooks](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-service-role.html).
Gunakan AWS CLI untuk menjalankan langkah pada cluster yang mengatur Notebook EMR seperti yang ditunjukkan pada contoh berikut. Anda harus menggunakan nama langkah `EMRNotebooksSetup`. Ganti {{us-east-1}} dengan Wilayah tempat cluster Anda berada. Untuk informasi selengkapnya, lihat [Menambahkan langkah-langkah untuk klaster menggunakan AWS CLI](https://docs.aws.amazon.com/emr/latest/ManagementGuide/add-step-cli.html).  

   ```
   aws emr add-steps --cluster-id {{MyClusterID}} --steps Type=CUSTOM_JAR,Name=EMRNotebooksSetup,ActionOnFailure=CONTINUE,Jar=s3://{{us-east-1}}.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://awssupportdatasvcs.com/bootstrap-actions/EMRNotebooksSetup/emr-notebooks-setup.sh"]
   ```

Anda dapat menginstal kernel dan pustaka menggunakan `pip` atau `conda` di `/emr/notebook-env/bin` direktori pada node utama. 

**Example - Menginstal pustaka Python**  
Dari kernel Python3, jalankan si `%pip` hir sebagai perintah dari dalam sel notebook untuk menginstal pustaka Python.  

```
%pip install pmdarima
```
Anda mungkin perlu me-restart kernel untuk menggunakan paket yang diperbarui. Anda juga dapat menggunakan sihir S [`%%sh`](https://ipython.readthedocs.io/en/stable/interactive/magics.html#cellmagic-sh) park untuk memanggil. `pip`  

```
%%sh
/emr/notebook-env/bin/pip install -U matplotlib
/emr/notebook-env/bin/pip install -U pmdarima
```
Saat menggunakan PySpark kernel, Anda dapat menginstal pustaka di cluster menggunakan `pip` perintah atau menggunakan pustaka bercakupan notebook dari dalam buku catatan. PySpark   
Untuk menjalankan `pip` perintah pada cluster dari terminal, pertama-tama hubungkan ke node utama menggunakan SSH, seperti yang ditunjukkan oleh perintah berikut.  

```
sudo pip3 install -U matplotlib
sudo pip3 install -U pmdarima
```
Atau, Anda dapat menggunakan pustaka bercakupan notebook. Dengan pustaka bercakupan notebook, instalasi pustaka Anda terbatas pada ruang lingkup sesi Anda dan terjadi pada semua pelaksana Spark. Untuk informasi selengkapnya, lihat [ Menggunakan Pustaka Bercakupan Notebook. ](#emr-managed-notebooks-custom-libraries-limitations)   
Jika Anda ingin mengemas beberapa pustaka Python dalam PySpark kernel, Anda juga dapat membuat lingkungan virtual Python yang terisolasi. Sebagai contoh, lihat [ Menggunakan Virtualenv](https://spark.apache.org/docs/latest/api/python/tutorial/python_packaging.html#using-virtualenv).   
Untuk membuat lingkungan virtual Python dalam sesi, gunakan properti Spark `spark.yarn.dist.archives` dari perintah `%%configure` magic di sel pertama di buku catatan, seperti yang ditunjukkan contoh berikut.  

```
%%configure -f
{
   "conf": {
   "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"./environment/bin/python",
   "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"./environment/bin/python",
   "spark.yarn.dist.archives":"s3://{{amzn-s3-demo-bucket}}/{{prefix}}/my_pyspark_venv.tar.gz#environment",
   "spark.submit.deployMode":"cluster"
   }
}
```
Anda juga dapat membuat lingkungan eksekutor Spark.  

```
%%configure -f
{
   "conf": {
   "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"./environment/bin/python",
   "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"./environment/bin/python",
   "spark.executorEnv.PYSPARK_PYTHON":"./environment/bin/python",
   "spark.yarn.dist.archives":"s3://{{amzn-s3-demo-bucket}}/{{prefix}}/my_pyspark_venv.tar.gz#environment",
   "spark.submit.deployMode":"cluster"
   }
}
```
Anda juga dapat menggunakan `conda` untuk menginstal pustaka Python. Anda tidak memerlukan akses sudo untuk menggunakannya`conda`. Anda harus terhubung ke node utama dengan SSH, dan kemudian jalankan `conda` dari terminal. Untuk informasi selengkapnya, lihat [Hubungkan ke node utama cluster Amazon EMR menggunakan SSH](emr-connect-master-node-ssh.md). 

**Example — Memasang kernel**  
Contoh berikut menunjukkan menginstal kernel Kotlin menggunakan perintah terminal saat terhubung ke node utama cluster:  

```
sudo /emr/notebook-env/bin/conda install kotlin-jupyter-kernel -c jetbrains
```
Instruksi ini tidak menginstal dependensi kernel. Jika kernel Anda memiliki dependensi pihak ketiga, Anda mungkin perlu mengambil langkah penyiapan tambahan sebelum dapat menggunakan kernel dengan notebook Anda.

## Pertimbangan dan batasan dengan perpustakaan bercakupan notebook
<a name="emr-managed-notebooks-custom-libraries-limitations"></a>

Saat Anda menggunakan pustaka bercakupan buku catatan, pertimbangkan hal berikut:
+ Notebook-scoped pustaka tersedia untuk cluster yang Anda buat dengan Amazon EMR rilis 5.26.0 dan yang lebih tinggi.
+ Notebook-scoped pustaka dimaksudkan untuk digunakan hanya dengan PySpark kernel.
+ Setiap pengguna dapat menginstal pustaka cakupan notebook tambahan dari dalam sel notebook. Pustaka ini hanya tersedia untuk pengguna notebook tersebut selama sesi notebook tunggal. Jika pengguna lain membutuhkan pustaka yang sama, atau pengguna yang sama membutuhkan pustaka yang sama dalam sesi yang berbeda, pustaka harus diinstal ulang.
+ Anda dapat menghapus hanya pustaka yang diinstal dengan `install_pypi_package` API. Anda tidak dapat menghapus semua pustaka yang sudah diinstal sebelumnya di cluster.
+ Jika pustaka yang sama dengan versi yang berbeda diinstal pada klaster dan sebagai pustaka cakupan notebook, versi pustaka cakupan notebook menimpa versi pustaka klaster.

## Bekerja dengan Notebook-scoped perpustakaan
<a name="emr-managed-notebooks-work-with-libraries"></a>

Untuk menginstal pustaka, klaster Amazon EMR Anda harus memiliki akses ke repositori PyPI di mana pustaka berada.

Contoh berikut menunjukkan perintah sederhana untuk membuat daftar, menginstal, dan menghapus pustaka dari dalam sel notebook menggunakan PySpark kernel dan API. Untuk contoh tambahan, lihat Meng [ instal pustaka Python pada cluster yang sedang berjalan dengan ](https://aws.amazon.com/blogs/big-data/install-python-libraries-on-a-running-cluster-with-emr-notebooks/) posting Notebook EMR di Blog AWS Big Data.

**Example — Daftar pustaka saat ini**  
Perintah berikut membuat daftar paket Python yang tersedia untuk sesi notebook Spark saat ini. Ini berisi daftar pustaka yang diinstal pada klaster dan pustaka cakupan notebook.  

```
sc.list_packages()
```

**Example — Menginstal pustaka Celery**  
Perintah berikut menginstal pustaka [Celery](https://pypi.org/project/celery/) sebagai pustaka cakupan notebook.  

```
sc.install_pypi_package("celery")
```
Setelah menginstal pustaka, perintah berikut mengonfirmasi bahwa pustaka tersedia pada driver dan eksekutor Spark.  

```
import celery
sc.range(1,10000,1,100).map(lambda x: celery.__version__).collect()
```

**Example — Menginstal pustaka Arrow, menentukan versi dan repositori**  
Perintah berikut menginstal pustaka [Arrow](https://pypi.org/project/arrow/) sebagai pustaka notebook, dengan spesifikasi versi pustaka dan URL repositori.  

```
sc.install_pypi_package("arrow==0.14.0", "https://pypi.org/simple")
```

**Example — Menghapus instalasi pustaka**  
Perintah berikut menghapus instalan pustaka Arrow, menghapusnya sebagai pustaka cakupan notebook dari sesi saat ini.  

```
sc.uninstall_package("arrow")
```