

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

# Memecahkan masalah notebook Studio untuk Layanan Terkelola untuk Apache Flink
<a name="how-zeppelin-troubleshooting"></a>

Bagian ini berisi informasi pemecahan masalah untuk notebook Studio.

## Hentikan aplikasi yang macet
<a name="how-zeppelin-troubleshooting-stopping"></a>

Untuk menghentikan aplikasi yang terjebak dalam keadaan transien, panggil [StopApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_StopApplication.html)tindakan dengan `Force` parameter yang disetel ke. `true` Untuk informasi selengkapnya, lihat [Menjalankan Aplikasi](https://docs.aws.amazon.com/managed-flink/latest/java/how-running-apps.html) di [Managed Service for Apache Flink Developer](https://docs.aws.amazon.com/managed-flink/latest/java/) Guide.

## Terapkan sebagai aplikasi dengan status tahan lama di VPC tanpa akses internet
<a name="how-zeppelin-troubleshooting-deploying-no-internet"></a>

 deploy-as-applicationFungsi Managed Service for Apache Flink Studio tidak mendukung aplikasi VPC tanpa akses internet. Kami menyarankan Anda membangun aplikasi Anda di Studio, dan kemudian menggunakan Managed Service for Apache Flink untuk membuat aplikasi Flink secara manual dan memilih file zip yang Anda buat di Notebook Anda.

Langkah-langkah berikut menguraikan pendekatan ini: 

1. Buat dan ekspor aplikasi Studio Anda ke Amazon S3. Ini harus berupa file zip. 

1. Buat Layanan Terkelola untuk aplikasi Apache Flink secara manual dengan jalur kode yang mereferensikan lokasi file zip di Amazon S3. Selain itu, Anda perlu mengkonfigurasi aplikasi dengan `env` variabel berikut (total 2`groupID`, 3`var`): 

1. kinesis.analytics.flink.run.options

   1. python: source/note.py

   1. jarfile: PythonApplicationDependencies lib/ .jar

1. terkelola.deploy\$1as\$1app.options

   1. DatabaSearN: *<glue database ARN (Amazon Resource Name)>*

1. Anda mungkin perlu memberikan izin ke Layanan Terkelola untuk Apache Flink Studio dan Layanan Terkelola untuk peran IAM Apache Flink untuk layanan yang digunakan aplikasi Anda. Anda dapat menggunakan peran IAM yang sama untuk kedua aplikasi.

## Deploy-as-app ukuran dan pengurangan waktu pembuatan
<a name="how-zeppelin-troubleshooting-deploying-as-app-reduce-build-time"></a>

Studio deploy-as-app untuk aplikasi Python mengemas semua yang tersedia di lingkungan Python karena kami tidak dapat menentukan pustaka mana yang Anda butuhkan. Ini dapat menghasilkan ukuran yang lebih besar dari yang diperlukan. deploy-as-app Prosedur berikut menunjukkan cara mengurangi ukuran ukuran aplikasi deploy-as-app Python dengan menghapus dependensi.

Jika Anda sedang membangun aplikasi Python dengan deploy-as-app fitur dari Studio, Anda dapat mempertimbangkan untuk menghapus paket Python yang sudah diinstal sebelumnya dari sistem jika aplikasi Anda tidak bergantung pada. Ini tidak hanya akan membantu mengurangi ukuran artefak akhir untuk menghindari pelanggaran batas layanan untuk ukuran aplikasi, tetapi juga meningkatkan waktu pembuatan aplikasi dengan fitur tersebut deploy-as-app.

Anda dapat menjalankan perintah berikut untuk mencantumkan semua paket Python yang diinstal dengan ukuran terinstal masing-masing dan secara selektif menghapus paket dengan ukuran yang signifikan.

```
%flink.pyflink

!pip list --format freeze | awk -F = {'print $1'} | xargs pip show | grep -E 'Location:|Name:' | cut -d ' ' -f 2 | paste -d ' ' - - | awk '{gsub("-","_",$1); print $2 "/" tolower($1)}' | xargs du -sh 2> /dev/null | sort -hr
```

**catatan**  
`apache-beam`diperlukan oleh Flink Python untuk beroperasi. Anda tidak boleh menghapus paket ini dan dependensinya.

Berikut ini adalah daftar paket Python pra-instal di Studio V2 yang dapat dipertimbangkan untuk dihapus:

```
scipy
statsmodels
plotnine
seaborn
llvmlite
bokeh
pandas
matplotlib
botocore
boto3
numba
```

**Untuk menghapus paket Python dari notebook Zeppelin:**

1. Periksa apakah aplikasi Anda bergantung pada paket, atau paket konsumsinya, sebelum menghapusnya. [Anda dapat mengidentifikasi dependan paket menggunakan pipdeptree.](https://pypi.org/project/pipdeptree/)

1. Menjalankan perintah berikut untuk menghapus paket:

   ```
   %flink.pyflink
   !pip uninstall -y <package-to-remove>
   ```

1. Jika Anda perlu mengambil paket yang Anda hapus karena kesalahan, jalankan perintah berikut:

   ```
   %flink.pyflink
   !pip install <package-to-install>
   ```

**Example Contoh: Hapus `scipy` paket sebelum menerapkan aplikasi deploy-as-app Python Anda dengan fitur.**  

1. Gunakan `pipdeptree` untuk menemukan semua `scipy` konsumen dan verifikasi apakah Anda dapat menghapus dengan aman`scipy`.
   + Instal alat melalui notebook:

     ```
     %flink.pyflink             
     !pip install pipdeptree
     ```
   + Dapatkan pohon ketergantungan terbalik `scipy` dengan menjalankan:

     ```
     %flink.pyflink
     !pip -r -p scipy
     ```

     Anda akan melihat output yang mirip dengan berikut ini (diringkas untuk singkatnya):

     ```
     ...
     ------------------------------------------------------------------------ 
     scipy==1.8.0 
     ├── plotnine==0.5.1 [requires: scipy>=1.0.0] 
     ├── seaborn==0.9.0 [requires: scipy>=0.14.0] 
     └── statsmodels==0.12.2 [requires: scipy>=1.1] 
         └── plotnine==0.5.1 [requires: statsmodels>=0.8.0]
     ```

1. Hati-hati memeriksa penggunaan`seaborn`, `statsmodels` dan `plotnine` dalam aplikasi Anda. Jika aplikasi Anda tidak bergantung pada salah satu`scipy`,`seaborn`,`statemodels`, atau`plotnine`, Anda dapat menghapus semua paket ini, atau hanya paket yang tidak diperlukan aplikasi Anda.

1. Hapus paket dengan menjalankan:

   ```
   !pip uninstall -y scipy plotnine seaborn statemodels
   ```

## Batalkan pekerjaan
<a name="how-notbook-canceling-jobs"></a>

Bagian ini menunjukkan cara untuk membatalkan tugas Apache Flink yang tidak bisa Anda dapatkan dari Apache Zeppelin. Jika Anda ingin membatalkan tugas seperti itu, buka dasbor Apache Flink, salin ID tugas, lalu gunakan di salah satu contoh berikut.

Untuk membatalkan satu tugas:

```
%flink.pyflink
import requests

requests.patch("https://zeppelin-flink:8082/jobs/[job_id]", verify=False)
```

Untuk membatalkan semua tugas yang sedang berjalan:

```
%flink.pyflink
import requests

r = requests.get("https://zeppelin-flink:8082/jobs", verify=False)
jobs = r.json()['jobs']

for job in jobs:
    if (job["status"] == "RUNNING"):
        print(requests.patch("https://zeppelin-flink:8082/jobs/{}".format(job["id"]), verify=False))
```

Untuk membatalkan semua tugas:

```
%flink.pyflink
import requests

r = requests.get("https://zeppelin-flink:8082/jobs", verify=False)
jobs = r.json()['jobs']

for job in jobs:
    requests.patch("https://zeppelin-flink:8082/jobs/{}".format(job["id"]), verify=False)
```

## Mulai ulang penerjemah Apache Flink
<a name="how-notbook-restarting-interpreter"></a>

Untuk memulai ulang interpreter Apache Flink dalam notebook Studio Anda

1. Pilih **Configuration** (Konfigurasi) di dekat sudut kanan atas layar.

1. Pilih **Interpreter**.

1. Pilih **restart** (mulai ulang), lalu **OK**.