Antarmuka web cluster

Beberapa komponen open source inti yang disertakan dengan cluster Dataproc, seperti Apache Hadoop dan Apache Spark, menyediakan antarmuka web. Antarmuka ini dapat digunakan untuk mengelola dan memantau resource serta fasilitas cluster, seperti pengelola resource YARN, Hadoop Distributed File System (HDFS), MapReduce, dan Spark. Komponen atau aplikasi lain yang Anda instal di cluster juga dapat menyediakan antarmuka web (lihat, misalnya, Menginstal dan menjalankan notebook Jupyter di cluster Dataproc).

Antarmuka yang tersedia

Antarmuka berikut tersedia pada node master cluster Dataproc (ganti master-host-name dengan nama node master Anda).

UI Web Port URL
YARN ResourceManager1 80882 http://master-host-name:8088
NameNode HDFS 98703,4 http://master-host-name:9870

1 UI Yarn ResourceManager tidak didukung di cluster Ketersediaan Tinggi (HA) Dataproc.

2 Di cluster yang mendukung Kerberos, port UI web YARN ResourceManager adalah 8090, dan berjalan di HTTPS.

3 Di cluster yang mendukung Kerberos, port UI web Namenode HDFS adalah 9871, dan berjalan di HTTPS.

4 Dalam rilis Dataproc sebelumnya (sebelum versi 1.2), port UI web HDFS Namenode adalah 50070.

YARN ResourceManager memiliki link untuk semua antarmuka web MapReduce dan Spark Applications yang saat ini berjalan dan telah selesai di kolom "Tracking UI".

REST API YARN ResourceManager yang diizinkan

Saat Anda membuat cluster, Dataproc menetapkan properti yarn.resourcemanager.webapp.methods-allowed yarn-site.xml ke "GET,HEAD". yang membatasi metode HTTP yang dapat dipanggil di UI web YaRN Resource Manager dan REST API ke metode GET dan HEAD. Setelan default ini juga menonaktifkan pengiriman dan modifikasi tugas melalui YARN REST API.

Anda dapat mengganti nilai default untuk mengaktifkan metode HTTP tertentu di port 8088 dengan menyetel properti ini ke satu atau beberapa nama metode HTTP yang dipisahkan koma. Nilai ALL akan mengizinkan semua metode HTTP pada port.

Contoh:

gcloud dataproc clusters create cluster-name \
    --properties=^#^yarn:yarn.resourcemanager.webapp.methods-allowed=GET,POST,DELETE \
    --region=region \

Rekomendasi: Jika Anda menetapkan properti ini untuk mengizinkan metode HTTP non-default, pastikan untuk mengonfigurasi aturan firewall dan setelan keamanan lainnya untuk membatasi akses ke port 8088.

Menghubungkan ke antarmuka web

Anda dapat terhubung ke antarmuka web yang berjalan di cluster Dataproc menggunakan Gateway Komponen Dataproc, Cloud Shell project Anda, atau alat command line gcloud Google Cloud CLI:

  • Gateway Komponen: Terhubung dengan satu klik ke Hadoop, Spark, dan antarmuka UI Web komponen lainnya dari Konsol Google Cloud. Anda mengaktifkan Gateway Komponen saat membuat cluster.

  • Cloud Shell: Cloud Shell di Google Cloud Console sudah menginstal perintah dan utilitas gcloud CLI, serta menyediakan fitur Pratinjau Web yang memungkinkan Anda terhubung dengan cepat melalui tunnel SSH ke port antarmuka web di cluster. Namun, koneksi ke cluster dari Cloud Shell menggunakan penerusan port lokal, yang membuka koneksi hanya ke satu port pada antarmuka web cluster. Diperlukan beberapa perintah untuk terhubung ke beberapa port. Selain itu, sesi Cloud Shell otomatis keluar setelah tidak aktif selama periode tertentu (30 menit).

  • Google Cloud CLI: Perintah gcloud compute ssh dengan penerusan port dinamis memungkinkan Anda membangun tunnel SSH dan menjalankan server proxy SOCKS di atas tunnel. Setelah mengeluarkan perintah ini, Anda harus mengonfigurasi browser lokal untuk menggunakan proxy SOCKS. Dengan metode koneksi ini, Anda dapat terhubung ke beberapa port pada antarmuka web cluster. Lihat Dapatkah saya menggunakan penerusan port lokal dan bukan proxy SOCKS? untuk mengetahui informasi selengkapnya.

Menetapkan variabel perintah yang biasa digunakan

Untuk mempermudah penyalinan dan menjalankan contoh command line di komputer lokal atau di Cloud Shell, tetapkan variabel perintah gcloud dataproc. Variabel tambahan mungkin perlu ditetapkan untuk beberapa contoh perintah yang ditampilkan di halaman ini.

Linux/mac/Shell

export PROJECT=project;export HOSTNAME=hostname;export ZONE=zone

Windows

set PROJECT=project && set HOSTNAME=hostname && set ZONE=zone
  • Tetapkan PROJECT ke project ID Google Cloud Anda
  • Tetapkan HOSTNAME ke nama node master di cluster Dataproc (nama master diakhiri dengan akhiran -m)
  • Tetapkan ZONE ke zona VM di cluster Dataproc Anda (misalnya, "us-central1-b")

Membuat tunnel SSH

Perintah gcloud

Jalankan perintah gcloud berikut di komputer lokal Anda untuk menyiapkan tunnel SSH dari port terbuka di komputer lokal Anda ke instance master cluster Anda, dan jalankan server proxy SOCKS lokal yang memantau port tersebut.

Sebelum menjalankan perintah, di komputer lokal Anda:

  1. Menetapkan variabel perintah yang umum digunakan
  2. Tetapkan variabel PORT ke port terbuka di komputer lokal Anda. Port 1080 bersifat arbitrer tetapi umum karena kemungkinan akan terbuka.
    PORT=number
    

Linux/macOS

gcloud compute ssh ${HOSTNAME} \
    --project=${PROJECT} --zone=${ZONE}  -- \
    -D ${PORT} -N

Windows

gcloud compute ssh %HOSTNAME% ^
    --project=%PROJECT% --zone=%ZONE%  -- ^
    -D %PORT% -N

Pemisah -- memungkinkan Anda menambahkan argumen SSH ke perintah gcloud compute ssh, seperti berikut:

  • -Dmenentukan penerusan port tingkat aplikasi yang dinamis.
  • -N memerintahkan gcloud untuk tidak membuka shell jarak jauh.

Perintah gcloud ini membuat tunnel SSH yang beroperasi secara independen dari sesi shell SSH lainnya, mencegah error terkait tunnel keluar dari output shell, dan membantu mencegah penutupan tunnel yang tidak disengaja.

Jika perintah ssh gagal dengan pesan error bind: Cannot assign requested address, kemungkinan penyebabnya adalah port yang diminta sedang digunakan. Coba jalankan perintah dengan nilai variabel PORT lain.

Perintah di atas berjalan di latar depan, dan harus terus berjalan agar tunnel tetap aktif. Perintah tersebut akan otomatis keluar jika dan ketika Anda menghapus cluster.

Cloud Shell

  1. Buka Google Cloud Cloud Shell.
  2. Jalankan perintah gcloud di bawah ini di Cloud Shell untuk menyiapkan tunnel SSH dari port pratinjau Cloud Shell ke port antarmuka web pada node master di cluster Anda. Sebelum menjalankan perintah, di Cloud Shell :

    1. Menetapkan variabel perintah yang umum digunakan
    2. Tetapkan variabel PORT1 ke port Cloud Shell dalam rentang port 8080 - 8084, dan tetapkan variabel PORT2 ke port antarmuka web pada node master di cluster Dataproc Anda.
      PORT1=number
      PORT2=number
      
    gcloud compute ssh ${HOSTNAME} \
        --project=${PROJECT} --zone=${ZONE}  -- \
        -4 -N -L ${PORT1}:${HOSTNAME}:${PORT2}
    

    Pemisah -- memungkinkan Anda menambahkan argumen SSH ke perintah gcloud compute ssh, seperti berikut:

    • -4 menginstruksikan SSH untuk hanya menggunakan IPv4.
    • -N memerintahkan gcloud untuk tidak membuka shell jarak jauh.
    • -L ${PORT1}:${HOSTNAME}:${PORT2} menentukan penerusan port lokal dari PORT1 Cloud Shell yang ditentukan ke cluster HOSTNAME:PORT2.

    Perintah gcloud ini membuat tunnel SSH yang beroperasi secara independen dari sesi shell SSH lainnya, mencegah error terkait tunnel keluar dari output shell, dan membantu mencegah penutupan tunnel yang tidak disengaja.

Konfigurasi browser Anda

Perintah gcloud

Tunnel SSH Anda mendukung proxy traffic menggunakan protokol SOCKS. Untuk mengonfigurasi browser Anda agar menggunakan proxy, mulai sesi browser baru dengan parameter server proxy. Berikut contoh penggunaan browser Google Chrome. HOSTNAME adalah nama node master cluster (lihat Menetapkan variabel perintah yang umum digunakan).

Linux

/usr/bin/google-chrome \
    --proxy-server="socks5://localhost:${PORT}" \
    --user-data-dir=/tmp/${HOSTNAME}

macOS

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
    --proxy-server="socks5://localhost:${PORT}" \
    --user-data-dir=/tmp/${HOSTNAME}

Windows

"%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe" ^
    --proxy-server="socks5://localhost:%PORT%" ^
    --user-data-dir="%Temp%\%HOSTNAME%"

Perintah ini menggunakan tanda browser Chrome berikut:

  • -proxy-server="socks5://localhost:1080" akan memberi tahu Chrome untuk mengirimkan semua permintaan URL http:// dan https:// melalui server proxy SOCKS localhost:${PORT}, menggunakan protokol SOCKS versi 5. ${PORT} adalah variabel port yang Anda tetapkan di Membuat tunnel SSH. Nama host untuk URL diselesaikan oleh server proxy, bukan secara lokal oleh Chrome.
  • --user-data-dir=/tmp/${HOSTNAME} memaksa Chrome untuk membuka jendela baru yang tidak terikat dengan sesi Chrome yang ada. Tanpa tanda ini, Chrome dapat membuka jendela baru yang terhubung ke sesi Chrome yang ada, dan mengabaikan setelan --proxy-server. Nilai yang ditetapkan untuk --user-data-dir dapat berupa jalur yang tidak ada.

Cloud Shell

Anda tidak perlu mengonfigurasi browser lokal saat menggunakan Cloud Shell. Setelah membuat tunnel SSH, gunakan pratinjau web Cloud Shell untuk terhubung ke antarmuka cluster.

Menghubungkan ke antarmuka cluster

Perintah gcloud

Setelah browser lokal dikonfigurasi untuk menggunakan proxy, Anda dapat membuka URL antarmuka web di cluster Dataproc (lihat Antarmuka yang tersedia). URL browser memiliki format dan konten berikut: http://cluster-name-m:port (port antarmuka cluster)

Cloud Shell

Klik tombol Web Preview Cloud Shell tombol-pratinjau-web, lalu pilih:

  • "Pratinjau di port 8080", atau
  • "Ubah port" dan masukkan nomor port dalam dialog
sesuai dengan nomor PORT1 Cloud Shell (port 8080 - 8084) yang Anda teruskan ke perintah gcloud compute ssh di Membuat tunnel SSH.

Jendela browser akan terbuka dan terhubung ke port antarmuka web pada node master cluster.

FAQ dan tips proses debug

Bagaimana jika saya tidak melihat UI di browser?

Jika Anda tidak melihat UI di browser Anda, dua alasan yang paling umum adalah:

  1. Anda memiliki masalah konektivitas jaringan, kemungkinan karena {i>firewall<i}. Jalankan perintah berikut (setelah menetapkan variabel lokal) untuk melihat apakah Anda dapat menerapkan SSH ke instance master. Jika Anda tidak bisa melakukannya, berarti ada masalah konektivitas.

    Linux/macOS

    gcloud compute ssh ${HOSTNAME}-m \
        --project=${PROJECT}
    

    Windows

    gcloud compute ssh %HOSTNAME%-m ^
        --project=%PROJECT%
    

  2. {i>Proxy<i} lain mengganggu {i>proxy<i} SOCKS. Untuk memeriksa proxy, jalankan perintah curl berikut (tersedia di Linux dan macOS):

    Linux/macOS

    curl -Is --socks5-hostname localhost:1080 http://cluster-name-m:8088
    

    Windows

    curl.exe -Is --socks5-hostname localhost:1080 http://cluster-name-m:8088
    
    Jika Anda melihat respons HTTP, artinya proxy berfungsi, sehingga mungkin proxy SOCKS terganggu oleh proxy atau ekstensi browser lain.

Dapatkah saya menggunakan penerusan port lokal sebagai ganti proxy SOCKS?

Sebagai ganti proxy SOCKS, Anda dapat mengakses UI aplikasi web yang berjalan pada instance master dengan penerusan port lokal SSH, yang meneruskan port master ke port lokal. Misalnya, perintah berikut memungkinkan Anda mengakses localhost:1080 untuk menjangkau cluster-name-m:8088 tanpa SOCKS (lihat Menetapkan variabel perintah yang umum digunakan):

Linux/macOS

gcloud compute ssh ${HOSTNAME}-m \
    --project=${PROJECT} -- \
    -L 1080:${HOSTNAME}-m:8088 -N -n

Windows

gcloud compute ssh %HOSTNAME%-m ^
    --project=%PROJECT% -- ^
    -L 1080:%HOSTNAME%-m:8088 -N -n

Menggunakan proxy SOCKS mungkin lebih baik untuk menggunakan penerusan port lokal karena proxy tersebut:

  • memungkinkan Anda mengakses semua port aplikasi web tanpa harus menyiapkan tunnel penerusan port untuk setiap port UI
  • memungkinkan UI web Spark dan Hadoop untuk me-resolve host DNS dengan benar