Menginstal dan menggunakan kernel dan pustaka di Studio EMR - Amazon EMR

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 Studio EMR

Setiap EMR notebook dilengkapi dengan satu set pustaka dan kernel yang sudah diinstal sebelumnya. Anda dapat menginstal pustaka dan kernel tambahan di EMR cluster jika cluster memiliki akses ke repositori tempat kernel dan pustaka berada. Misalnya, untuk klaster di subnet pribadi, Anda mungkin perlu mengonfigur terjemahan alamat jaringan (NAT) dan menyediakan jalur bagi klaster untuk mengakses repositori PyPI publik untuk menginstal pustaka. Untuk informasi selengkapnya tentang mengonfigurasi akses eksternal untuk konfigurasi jaringan yang berbeda, lihat Skenario dan contoh di VPCPanduan Pengguna Amazon.

catatan

EMRNotebook tersedia sebagai Ruang Kerja EMR Studio di konsol. Tombol Create Workspace di konsol memungkinkan Anda membuat notebook baru. Untuk mengakses atau membuat Ruang Kerja, pengguna EMR Notebook memerlukan izin IAM peran tambahan. Untuk informasi selengkapnya, lihat EMRNotebook Amazon adalah Amazon EMR Studio Workspaces di konsol dan konsol Amazon EMR.

EMRAplikasi 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 simpul utama cluster

Dengan versi EMR rilis Amazon 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 pustaka ini tersedia untuk setiap pengguna yang menjalankan EMR notebook yang dilampirkan ke cluster. 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 tambahan untuk menginstal kernel dan pustaka pada node utama cluster.

Untuk mengaktifkan fitur, lakukan hal berikut ini:

  1. Pastikan kebijakan izin yang dilampirkan pada peran layanan untuk EMR Notebook memungkinkan tindakan berikut:

    elasticmapreduce:ListSteps

    Untuk informasi selengkapnya, lihat Peran layanan untuk EMR Buku Catatan.

  2. Gunakan AWS CLI untuk menjalankan langkah pada cluster yang mengatur EMR Notebook 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.

    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.

contoh — 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 %%shSpark untuk memanggilpip.

%%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 menggunakanSSH, 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.

Jika Anda ingin mengemas beberapa pustaka Python dalam PySpark kernel, Anda juga dapat membuat lingkungan virtual Python yang terisolasi. Untuk contoh, lihat Menggunakan 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 menggunakannyaconda. Anda harus terhubung ke node utama denganSSH, dan kemudian jalankan conda dari terminal. Untuk informasi selengkapnya, lihat Connect ke node utama EMR klaster Amazon menggunakan SSH.

contoh — Memasang kernel

Contoh berikut menunjukkan penginstalan kernel Kotlin menggunakan perintah terminal saat terhubung ke node utama cluster:

sudo /emr/notebook-env/bin/conda install kotlin-jupyter-kernel -c jetbrains
catatan

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

Saat Anda menggunakan pustaka dengan cakupan notebook, pertimbangkan hal berikut:

  • Pustaka dengan cakupan notebook tersedia untuk kluster yang Anda buat dengan rilis Amazon 5.26.0 dan yang lebih tinggi. EMR

  • Pustaka dengan cakupan notebook dimaksudkan untuk digunakan hanya dengan kernel. PySpark

  • 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 file. install_pypi_package API 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 Pustaka cakupan notebook

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

Contoh berikut menunjukkan perintah sederhana untuk daftar, menginstal, dan menghapus pustaka dari dalam sel notebook menggunakan PySpark kernel dan. APIs Untuk contoh tambahan, lihat Menginstal pustaka Python pada klaster yang sedang berjalan dengan posting EMR Notebook di Blog Big Data. AWS

contoh — 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()
contoh — Menginstal pustaka Celery

Perintah berikut menginstal pustaka 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()
contoh — Menginstal pustaka Arrow, menentukan versi dan repositori

Perintah berikut menginstal pustaka Arrow sebagai pustaka cakupan notebook, dengan spesifikasi versi pustaka dan repositori. URL

sc.install_pypi_package("arrow==0.14.0", "https://pypi.org/simple")
contoh — Menghapus instalasi pustaka

Perintah berikut menghapus instalan pustaka Arrow, menghapusnya sebagai pustaka cakupan notebook dari sesi saat ini.

sc.uninstall_package("arrow")