Beberapa komponen open source default yang disertakan dengan cluster Google Dataproc, seperti Apache Hadoop dan Apache Spark, menyediakan antarmuka web. Antarmuka ini dapat digunakan untuk mengelola dan memantau resource dan fasilitas cluster, seperti pengelola resource YARN, Hadoop Distributed File System (HDFS), MapReduce, dan Spark. Gateway Komponen memberikan akses aman ke endpoint web untuk komponen opsional dan default Dataproc.
Cluster yang dibuat dengan versi image Dataproc yang didukung dapat mengaktifkan akses ke antarmuka web komponen tanpa mengandalkan tunnel SSH atau mengubah aturan firewall untuk mengizinkan traffic masuk.
Pertimbangan
- Antarmuka web komponen dapat diakses oleh pengguna yang memiliki izin IAM dataproc.clusters.use. Lihat Peran Dataproc.
- Component Gateway dapat digunakan untuk mengakses REST API, seperti Apache Hadoop YARN dan Apache Livy, serta server histori.
- Jika Gateway Komponen diaktifkan, Dataproc akan menambahkan layanan berikut ke node master pertama cluster:
- Apache Knox. Sertifikat SSL Knox Gateway default berlaku selama 13 bulan sejak tanggal pembuatan cluster. Jika masa berlakunya habis, semua URL antarmuka web Komponen Gateway akan menjadi tidak aktif. Untuk mendapatkan sertifikat baru, lihat Cara membuat ulang sertifikat SSL Component Gateway.
- Inverting Proxy
- Gateway komponen tidak mengaktifkan akses langsung ke antarmuka
node:port
, tetapi secara otomatis membuat proxy subset layanan tertentu. Jika Anda ingin mengakses layanan di node (node:port
), gunakan proxy SOCKS SSH.
Membuat cluster dengan Component Gateway
Konsol
Gateway Komponen Dataproc diaktifkan secara default saat Anda membuat cluster menggunakan konsol Google Cloud. Anda dapat menonaktifkan setelan ini dengan menghapus centang pada kotak Aktifkan gateway komponen di bagian Komponen pada panel Siapkan cluster di halaman Buat cluster Dataproc di Compute Engine Dataproc.
perintah gcloud
Jalankan perintah gcloud CLI gcloud dataproc clusters create secara lokal di jendela terminal atau di Cloud Shell.
gcloud dataproc clusters create cluster-name \ --enable-component-gateway \ --region=region \ other args ...
REST API
Tetapkan properti EndpointConfig.enableHttpPortAccess ke true
sebagai bagian dari permintaan clusters.create.
Menggunakan URL Gateway Komponen untuk mengakses antarmuka web
Jika Component Gateway diaktifkan di cluster, Anda dapat terhubung ke antarmuka web komponen yang berjalan di node master pertama cluster dengan mengklik link yang disediakan di konsol Google Cloud. Component Gateway juga menetapkan
endpointConfig.httpPorts
dengan peta nama port ke URL. Sebagai alternatif untuk menggunakan konsol,
Anda dapat menggunakan alat command line
gcloud
atau Dataproc REST API untuk melihat informasi pemetaan ini,
lalu menyalin dan menempelkan URL ke browser untuk terhubung dengan UI komponen.
Konsol
Buka formulir Clusters Dataproc di konsol Google Cloud, lalu pilih cluster untuk membuka formulir Cluster details. Klik tab Web Interfaces untuk menampilkan daftar link Component Gateway ke antarmuka web komponen default dan opsional yang diinstal di cluster. Klik link untuk membuka antarmuka web yang berjalan di node master cluster di browser lokal Anda.
perintah gcloud
Jalankan perintah gcloud CLI gcloud dataproc clusters describe secara lokal di jendela terminal atau di Cloud Shell.
gcloud dataproc clusters describe cluster-name \ --region=region
Contoh Output
... config: endpointConfig: enableHttpPortAccess: true httpPorts: HDFS NameNode:
https://584bbf70-7a12-4120-b25c-31784c94dbb4-dot-dataproc.google.com/hdfs/ MapReduce Job History:
https://584bbf70-7a12-4120-b25c-31784c94dbb4-dot-dataproc.google.com/jobhistory/ Spark HistoryServer:
https://584bbf70-7a12-4120-b25c-31784c94dbb4-dot-dataproc.google.com/sparkhistory/ YARN ResourceManager:
https://584bbf70-7a12-4120-b25c-31784c94dbb4-dot-dataproc.google.com/yarn/ YARN Application Timeline:
https://584bbf70-7a12-4120-b25c-31784c94dbb4-dot-dataproc.google.com/apphistory/ ...
REST API
Panggil clusters.get untuk mendapatkan peta nama port ke URL endpointConfig.httpPorts.Menggunakan Gateway Komponen dengan VPC-SC
Component Gateway mendukung
Kontrol Layanan VPC.
Untuk penerapan perimeter layanan, permintaan ke antarmuka melalui Component Gateway
diperlakukan sebagai bagian dari platform Dataproc API, dan kebijakan akses apa pun yang
mengontrol izin untuk dataproc.googleapis.com
juga akan mengontrol akses ke
UI Component Gateway.
Component Gateway juga mendukung konfigurasi VPC-SC yang mengandalkan konektivitas Google pribadi untuk cluster Dataproc tanpa alamat IP eksternal, tetapi Anda harus mengonfigurasi jaringan secara manual untuk mengizinkan akses dari VM master Dataproc ke *.dataproc.cloud.google.com
melalui rentang IP virtual Google yang dibatasi 199.36.153.4/30
dengan melakukan tindakan berikut:
- Ikuti petunjuk untuk mengonfigurasi konektivitas Google pribadi untuk semua Google API.
- Konfigurasikan DNS dengan Cloud DNS atau
konfigurasi DNS secara lokal di node master Dataproc
untuk mengizinkan akses ke
*.dataproc.cloud.google.com
.
Mengonfigurasi DNS dengan Cloud DNS
Buat zona Cloud DNS yang memetakan traffic yang ditujukan untuk *.dataproc.cloud.google.com
ke rentang IP virtual Google API yang dibatasi.
Buat zona pribadi terkelola untuk jaringan VPC Anda.
gcloud dns managed-zones create ZONE_NAME \ --visibility=private \ --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \ --description=DESCRIPTION \ --dns-name=dataproc.cloud.google.com \ --project=PROJECT_ID
ZONE_NAME adalah nama untuk zona yang Anda buat. Contoh,
vpc
. Nama zona ini akan digunakan di setiap langkah berikut.PROJECT_ID adalah ID project yang menghosting jaringan VPC Anda.
NETWORK_NAME adalah nama jaringan VPC Anda.
DESCRIPTION adalah deskripsi opsional yang dapat dibaca manusia tentang zona yang dikelola.
Mulai transaksi.
gcloud dns record-sets transaction start --zone=ZONE_NAME
- ZONE_NAME adalah nama zona Anda.
Menambahkan data DNS.
gcloud dns record-sets transaction add --name=*.dataproc.cloud.google.com. \ --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \ --zone=ZONE_NAME \ --ttl=300
- ZONE_NAME adalah nama zona Anda.
gcloud dns record-sets transaction add --name=dataproc.cloud.google.com. \ --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \ --zone=ZONE_NAME \ --ttl=300
- ZONE_NAME adalah nama zona Anda.
Jalankan transaksi.
gcloud dns record-sets transaction execute --zone=ZONE_NAME --project=PROJECT_ID
ZONE_NAME adalah nama zona Anda.
PROJECT_ID adalah ID project yang menghosting jaringan VPC Anda.
Mengonfigurasi DNS secara lokal di node master Dataproc dengan tindakan inisialisasi
Anda dapat mengonfigurasi DNS secara lokal di node master Dataproc untuk mengizinkan konektivitas
pribadi ke dataproc.cloud.google.com
. Prosedur ini ditujukan untuk
pengujian dan pengembangan jangka pendek. Penggunaannya dalam beban kerja produksi tidak direkomendasikan.
Lakukan staging tindakan inisialisasi ke Cloud Storage.
cat <<EOF >component-gateway-vpc-sc-dns-init-action.sh #!/bin/bash readonly ROLE="$(/usr/share/google/get_metadata_value attributes/dataproc-role)" if [[ "${ROLE}" == 'Master' ]]; then readonly PROXY_ENDPOINT=$(grep "^dataproc.proxy.agent.endpoint=" \ "/etc/google-dataproc/dataproc.properties" | \ tail -n 1 | cut -d '=' -f 2- | sed -r 's/\\([#!=:])/\1/g') readonly HOSTNAME=$(echo ${PROXY_ENDPOINT} | \ sed -n -E 's;^https://([^/?#]*).*;\1;p') echo "199.36.153.4 ${HOSTNAME} # Component Gateway VPC-SC" >> "/etc/hosts" fi EOF gcloud storage cp component-gateway-vpc-sc-dns-init-action.sh gs://BUCKET/
- BUCKET adalah bucket Cloud Storage yang dapat diakses dari cluster Dataproc.
Buat cluster Dataproc dengan tindakan inisialisasi bertahap dan Gateway Komponen diaktifkan.
gcloud dataproc clusters create cluster-name \ --region=region \ --initialization-actions=gs://BUCKET/component-gateway-vpc-sc-dns-init-action.sh \ --enable-component-gateway \ other args ...
- BUCKET adalah bucket Cloud Storage yang digunakan pada langkah 1 di atas.
Menggunakan HTTP API secara terprogram melalui Component Gateway
Gateway Komponen adalah proxy yang menggabungkan Apache Knox. Endpoint yang ditampilkan oleh
Apache Knox tersedia melalui
https://component-gateway-base-url/component-path
.
Untuk mengautentikasi secara terprogram dengan Component Gateway, teruskan header
Proxy-Authorization
dengan
token Pembawa OAuth 2.0.
$ ACCESS_TOKEN="$(gcloud auth print-access-token)"
$ curl -H "Proxy-Authorization: Bearer ${ACCESS_TOKEN}" "https://xxxxxxxxxxxxxxx-dot-us-central1.dataproc.googleusercontent.com/yarn/jmx"
{
"beans" : [ {
"name" : "Hadoop:service=ResourceManager,name=RpcActivityForPort8031",
"modelerType" : "RpcActivityForPort8031",
"tag.port" : "8031",
"tag.Context" : "rpc",
"tag.NumOpenConnectionsPerUser" : "{\"yarn\":2}",
"tag.Hostname" : "demo-cluster-m",
"ReceivedBytes" : 1928581096,
"SentBytes" : 316939850,
"RpcQueueTimeNumOps" : 7230574,
"RpcQueueTimeAvgTime" : 0.09090909090909091,
"RpcProcessingTimeNumOps" : 7230574,
"RpcProcessingTimeAvgTime" : 0.045454545454545456,
...
Gateway Komponen menghapus header Proxy-Authorization
sebelum meneruskan permintaan ke Apache Knox.
Untuk menemukan URL dasar Component Gateway, jalankan:
gcloud dataproc clusters describe
:
$ gcloud dataproc clusters describe <var>cluster-name</var> \
--region=<var>region</var>
...
endpointConfig:
enableHttpPortAccess: true
httpPorts:
HDFS NameNode: https://xxxxxxxxxxxxxxx-dot-us-central1.dataproc.googleusercontent.com/hdfs/dfshealth.html
MapReduce Job History: https://xxxxxxxxxxxxxxx-dot-us-central1.dataproc.googleusercontent.com/jobhistory/
Spark History Server: https://xxxxxxxxxxxxxxx-dot-us-central1.dataproc.googleusercontent.com/sparkhistory/
Tez: https://xxxxxxxxxxxxxxx-dot-us-central1.dataproc.googleusercontent.com/apphistory/tez-ui/
YARN Application Timeline: https://xxxxxxxxxxxxxxx-dot-us-central1.dataproc.googleusercontent.com/apphistory/
YARN ResourceManager: https://xxxxxxxxxxxxxxx-dot-us-central1.dataproc.googleusercontent.com/yarn/
...
URL dasar adalah bagian skema dan otoritas URL di bagian
httpPorts
. Dalam contoh ini, nilainya adalah https://xxxxxxxxxxxxxxx-dot-us-central1.dataproc.googleusercontent.com/
.
Cara membuat ulang sertifikat SSL Component Gateway
Sertifikat SSL Knox Gateway default Component Gateway valid untuk:
5 tahun sejak tanggal pembuatan cluster Dataproc pada cluster yang dibuat dengan image versi 2.0.93, 2.1.41, 2.2.7, dan yang lebih baru.
13 bulan sejak tanggal pembuatan cluster Dataproc pada cluster yang dibuat menggunakan versi image sebelumnya.
Jika masa berlaku sertifikat berakhir, semua URL antarmuka web Component Gateway akan menjadi tidak aktif.
Jika organisasi Anda menyediakan sertifikat SSL, dapatkan sertifikat baru dari organisasi, lalu ganti sertifikat lama dengan sertifikat baru.
Jika Anda menggunakan sertifikat SSL yang ditandatangani sendiri secara default, perpanjang sertifikat tersebut sebagai berikut:
Gunakan SSH untuk terhubung ke node master cluster Dataproc dengan akhiran nama
m-0
.Temukan
gateway.jks
di jalur/var/lib/knox/security/keystores/gateway.jks
.keytool -list -v -keystore /var/lib/knox/security/keystores/gateway.jks
Pindahkan file
gateway.jks
ke direktori cadangan.mv /var/lib/knox/security/keystores/gateway.jks /tmp/backup/gateway.jks
Buat sertifikat dengan tanda tangan sendiri yang baru dengan memulai ulang layanan Knox.
systemctl restart knox
Verifikasi status Component Gateway dan Knox.
systemctl status google-dataproc-component-gateway systemctl status knox
Langkah Berikutnya
- Buat cluster dengan komponen Dataproc.