

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 di kluster 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**  
EMR Notebooks tersedia sebagai EMR Studio Workspaces di konsol. Tombol **Create Workspace** di konsol memungkinkan Anda membuat notebook baru. Untuk mengakses atau membuat Ruang Kerja, pengguna EMR Notebooks memerlukan izin peran IAM tambahan. [Untuk informasi selengkapnya, lihat [Amazon EMR Notebook adalah Amazon EMR Studio Workspaces di konsol dan konsol Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-migration.html).](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html)<a name="emr-managed-notebooks-serverless"></a>

Aplikasi EMR Tanpa Server dilengkapi dengan pustaka pra-instal berikut untuk Python dan: PySpark 
+ **Pustaka Python** —ggplot,,matplotlib,,numpy,pandas,plotly, bokeh scikit-learn scipy scipy
+ **PySpark perpustakaan** —ggplot,,matplotlib,numpy,pandas,plotly,bokeh,scikit-learn, scipy scipy

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

Dengan versi rilis Amazon EMR 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 EMR Notebooks seperti yang ditunjukkan pada contoh berikut. Anda harus menggunakan nama langkah `EMRNotebooksSetup`. Ganti {{us-east-1}} dengan Wilayah tempat klaster 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 `%pip` sihir 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 [https://ipython.readthedocs.io/en/stable/interactive/magics.html#cellmagic-sh](https://ipython.readthedocs.io/en/stable/interactive/magics.html#cellmagic-sh)Spark 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 dengan cakupan 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 dengan cakupan notebook. Dengan pustaka dengan cakupan notebook, instalasi perpustakaan Anda terbatas pada cakupan sesi Anda dan terjadi pada semua pelaksana Spark. Untuk informasi selengkapnya, lihat [Menggunakan Pustaka Cakupan 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` ajaib di sel pertama dalam buku catatan, seperti contoh berikut menunjukkan.  

```
%%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 pelaksana 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 perlu akses sudo untuk menggunakannya`conda`. Anda harus terhubung ke node utama dengan SSH, dan kemudian jalankan `conda` dari terminal. Untuk informasi selengkapnya, lihat [Connect ke node primer Amazon EMR cluster menggunakan SSH](emr-connect-master-node-ssh.md). 

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

```
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 pustaka cakupan notebook
<a name="emr-managed-notebooks-custom-libraries-limitations"></a>

Saat Anda menggunakan pustaka dengan cakupan notebook, 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 hanya dapat menghapus pustaka yang diinstal dengan API. `install_pypi_package` Anda tidak dapat menghapus pustaka apa pun yang telah 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 [Menginstal pustaka Python di cluster yang sedang berjalan dengan posting EMR Notebooks](https://aws.amazon.com/blogs/big-data/install-python-libraries-on-a-running-cluster-with-emr-notebooks/) di Big Data Blog. AWS 

**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")
```