Saluran data SSH memungkinkan Anda mengakses UI web komponen open source pada kluster EMR secara aman tanpa mengekspos jaringan internal kluster tersebut. Tersedia dua metode: local port forwarding dan dynamic port forwarding dengan proxy SOCKS.
Untuk semua metode yang tersedia guna mengakses UI web komponen open source, lihat Akses UI web komponen open source.
Pilih metode
| Metode | Paling cocok untuk | Batasan |
|---|---|---|
| Local port forwarding | Mengakses satu komponen dalam satu waktu | Tidak dapat mengakses halaman detail pekerjaan |
| Dynamic port forwarding | Mengakses beberapa komponen sekaligus dengan satu saluran data | Memerlukan konfigurasi proxy pada browser |
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster EMR. Untuk informasi selengkapnya, lihat Buat kluster.
Client yang terhubung ke node master kluster EMR. Untuk informasi selengkapnya, lihat Kaitkan EIP dengan instans ECS.
Local port forwarding
Local port forwarding memetakan sebuah port pada mesin lokal Anda ke port pada node master, sehingga Anda dapat mengakses UI web satu komponen melalui localhost.
Metode ini tidak mendukung navigasi ke halaman detail pekerjaan.
Langkah 1: Buat saluran data SSH
Buka terminal pada mesin lokal Anda dan jalankan salah satu perintah berikut. Contoh ini meneruskan port lokal 8156 ke port 8088 pada node master untuk mengakses UI web YARN ResourceManager. Untuk mengakses komponen lain, ganti 8088 dengan nomor port yang sesuai. Daftar port komponen tersedia di Port umum komponen open source.
Sambung menggunakan file kunci privat
ssh -i <private-key-file-path> -N -L <local-port>:<master-node-name>:<component-port> root@<master-node-public-ip>Sambung menggunakan username dan password
ssh -N -L <local-port>:<master-node-name>:<component-port> root@<master-node-public-ip>| Parameter | Deskripsi | Contoh |
|---|---|---|
-i | Path ke file kunci privat yang digunakan untuk otentikasi. Lihat Kelola pasangan kunci SSH. | ~/.ssh/emr-key.pem |
-N | Membuat saluran data tanpa menjalankan remote command. Terminal tidak menghasilkan output setelah saluran data terbentuk — hal ini normal. | — |
-L | Mengaktifkan local port forwarding. Meneruskan traffic dari <local-port> ke <master-node-name>:<component-port> melalui node master. | — |
<private-key-file-path> | Path ke file kunci privat. | ~/.ssh/emr-key.pem |
<local-port> | Port kosong apa pun pada mesin Anda. | 8156 |
<master-node-name> | Nama node master, terlihat pada tab Nodes kluster. Lihat Dapatkan alamat IP publik dan nama node. | master-1-1 |
<component-port> | Port komponen open source target. | 8088 (YARN) |
<master-node-public-ip> | Alamat IP publik node master, terlihat pada tab Nodes. Lihat Dapatkan alamat IP publik dan nama node. | 203.0.113.10 |
Biarkan terminal tetap berjalan setelah saluran data terbentuk. Flag -N berarti SSH hanya mempertahankan saluran data dan tidak menjalankan perintah jarak jauh, sehingga tidak ada output yang dihasilkan. Ini merupakan perilaku normal.
Langkah 2: Akses UI web
Pada bilah alamat browser, masukkan http://localhost:<local-port> lalu tekan Enter.
Misalnya, untuk mengakses YARN ResourceManager, masukkan http://localhost:8156.
Untuk mengakses beberapa UI web komponen sekaligus, buka terminal tambahan dan ulangi Langkah 1 dengan port lokal berbeda untuk setiap komponen.
Dynamic port forwarding
Dynamic port forwarding menjalankan proxy SOCKS pada port lokal yang meneruskan seluruh lalu lintas melalui node master. Satu saluran data memberi Anda akses ke UI web komponen mana pun—cukup ubah hostname dan port komponen pada browser Anda.
Langkah 1: Buat saluran data SSH
Buka terminal pada mesin lokal Anda dan jalankan salah satu perintah berikut. Contoh ini menjalankan proxy SOCKS pada port lokal 8157.
Sambung menggunakan file kunci privat
ssh -i <private-key-file-path> -N -D <local-port> root@<master-node-public-ip>Sambung menggunakan username dan password
ssh -N -D <local-port> root@<master-node-public-ip>| Parameter | Deskripsi | Contoh |
|---|---|---|
-i | Path ke file kunci privat yang digunakan untuk otentikasi. Lihat Kelola pasangan kunci SSH. | ~/.ssh/emr-key.pem |
-N | Membuat saluran data tanpa menjalankan remote command. Terminal tidak menghasilkan output setelah saluran data terbentuk — hal ini normal. | — |
-D | Mengaktifkan dynamic port forwarding. Menjalankan proxy SOCKS yang mendengarkan pada <local-port> dan meneruskan traffic ke port mana pun pada node master. | — |
<local-port> | Port kosong apa pun pada mesin Anda. | 8157 |
<master-node-public-ip> | Alamat IP publik node master, terlihat pada tab Nodes. Lihat Dapatkan alamat IP publik dan nama node. | 203.0.113.10 |
Biarkan terminal tetap berjalan setelah saluran data terbentuk. Flag -N berarti SSH hanya mempertahankan saluran data dan tidak menjalankan perintah jarak jauh, sehingga tidak ada output yang dihasilkan. Ini merupakan perilaku normal.
Langkah 2: Konfigurasi proxy browser
Setelah saluran data aktif, konfigurasikan Google Chrome agar meneruskan lalu lintas melalui proxy SOCKS. Gunakan CLI atau ekstensi SwitchyOmega.
Opsi A: CLI
Buka terminal dan masuk ke direktori instalasi Google Chrome sesuai sistem operasi Anda.
Sistem operasi Direktori instalasi default macOS X /Applications/Google\ Chrome.app/Contents/macOSLinux /usr/bin/google-chromeWindows (64-bit) C:\Program Files\Google\Chrome\Application\Windows (32-bit) C:\Program Files (x86)\Google\Chrome\Application\Jalankan Google Chrome dengan pengaturan proxy SOCKS. Ganti
8157dengan port lokal yang dikonfigurasi pada Langkah 1.macOS X
./Google\ Chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/Linux
chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/Windows
chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=c:\\tmppath\\
Opsi B: Ekstensi SwitchyOmega
Ekstensi SwitchyOmega memungkinkan Anda beralih antara penjelajahan langsung dan melalui proxy dalam satu jendela browser yang sama.
Tambahkan ekstensi SwitchyOmega ke Google Chrome.
Pada panel navigasi kiri, klik New Profile. Pada kotak dialog New Profile, masukkan nama pada bidang Profile name (misalnya,
SSH tunnel), pilih PAC Profile, lalu klik Create.Pada editor PAC Script, tempel skrip berikut. Ganti semua kemunculan
8157dengan port lokal yang dikonfigurasi pada Langkah 1.function regExpMatch(url, pattern) { try { return new RegExp(pattern).test(url); } catch (ex) { return false; } } function FindProxyForURL(url, host) { if (shExpMatch(url, "*localhost*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*emr-header*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*emr-worker*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*master*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*core*")) return "SOCKS5 localhost:8157"; return 'DIRECT'; }Pada panel navigasi kiri, klik Apply changes.
Pada pojok kanan atas browser, pilih profil SSH tunnel yang telah Anda buat.
Langkah 3: Akses UI web
Pada bilah alamat browser, masukkan http://<master-node-name>:<component-port> lalu tekan Enter.
Misalnya, untuk mengakses YARN ResourceManager, masukkan http://master-1-1:8088.
| Parameter | Deskripsi | Contoh |
|---|---|---|
<master-node-name> | Nama node master, terlihat pada tab Nodes. Lihat Dapatkan alamat IP publik dan nama node. | master-1-1 |
<component-port> | Port komponen open source target. Lihat Port umum komponen open source. | 8088 (YARN) |
Untuk mengakses beberapa UI web komponen sekaligus, ubah nomor port pada bilah alamat. Tidak diperlukan saluran data tambahan.