Alcuni dei componenti open source predefiniti inclusi in Google di cluster Dataproc, come Apache Hadoop e Apache Spark, Fornire interfacce web. Queste interfacce possono essere utilizzate per gestire e monitorare di risorse e strutture del cluster, come il Resource Manager YARN, Hadoop Distributed File System (HDFS), MapReduce e Spark. Gateway dei componenti fornisce un accesso sicuro agli endpoint web per Dataproc componenti facoltativi.
Cluster creati con versioni immagine Dataproc supportate abilitare l'accesso alle interfacce web dei componenti senza fare affidamento Tunnel SSH o modificando le regole firewall per consentire il traffico in entrata.
Considerazioni
- Le interfacce web dei componenti sono accessibili agli utenti che hanno dataproc.clusters.use Autorizzazione IAM. Consulta Ruoli Dataproc.
- Il gateway dei componenti può essere utilizzato per accedere alle API REST, come YARN Apache Hadoop e Apache Livy, e i server di cronologia.
- Quando il gateway dei componenti è abilitato, Dataproc aggiunge quanto segue
al primo nodo master del cluster:
- Apache Knox. Il valore predefinito Il certificato SSL Knox Gateway è valido per 13 mesi dalla data di creazione del cluster. Se scade, l'intera interfaccia web del gateway dei componenti Gli URL diventano inattivi. Per ottenere un nuovo certificato, vedi Come rigenerare il certificato SSL del gateway dei componenti.
- Inverting Proxy
- Il gateway dei componenti non consente l'accesso diretto alle interfacce
node:port
. ma esegue automaticamente il proxy di un sottoinsieme specifico di servizi. Se vuoi per accedere ai servizi sui nodi (node:port
), utilizza Proxy SSH SOCKS.
Crea un cluster con il gateway dei componenti
Console
Il gateway del componente Dataproc è attivato da per impostazione predefinita quando crei un cluster utilizzando la console Google Cloud. Puoi disattivare questa impostazione cancellando il nella casella di controllo Attiva gateway dei componenti nella Sezione Componenti di il riquadro Configura cluster su Dataproc Crea un cluster Dataproc su Compute Engine .
![](https://cloud.google.com/static/dataproc/images/component-gateway-creation.png?hl=it)
Comando g-cloud
Esegui gcloud CLI gcloud dataproc clusters create localmente in una finestra del terminale o Cloud Shell.
gcloud dataproc clusters create cluster-name \ --enable-component-gateway \ --region=region \ other args ...
API REST
Imposta EndpointConfig.enableHttpPortAccess
a true
nell'ambito di un
clusters.create
richiesta.
Utilizzare gli URL del gateway dei componenti per accedere alle interfacce web
Quando il gateway dei componenti è abilitato su un cluster, puoi connetterti al componente
interfacce web in esecuzione sul primo nodo master del cluster facendo clic sui link
disponibili nella console Google Cloud. Il gateway dei componenti imposta anche
endpointConfig.httpPorts
con una mappa dei nomi delle porte agli URL. In alternativa all'uso della console,
puoi usare la riga di comando gcloud
o l'API REST Dataproc per visualizzare le informazioni di mappatura,
quindi copia e incolla l'URL nel browser per connetterti all'interfaccia utente del componente.
Console
Accedi a Dataproc Cluster sulla console Google Cloud, poi seleziona il cluster per aprire Modulo Dettagli cluster. Fai clic su Interfacce web per visualizzare un elenco di collegamenti del gateway dei componenti alle interfacce web di componenti predefiniti e facoltativi sul cluster. Fai clic su un link a apri l'interfaccia web in esecuzione sul nodo master del cluster nel browser locale.
![](https://cloud.google.com/static/dataproc/images/web-interfaces-tab.png?hl=it)
Comando g-cloud
Esegui gcloud CLI gcloud dataproc clusters describe localmente in una finestra del terminale o Cloud Shell.
gcloud dataproc clusters describe cluster-name \ --region=region
Output di esempio
... 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/ ...
API REST
Chiama clusters.get per ottenere Mappa endpointConfig.httpPorts dei nomi delle porte per gli URL.Utilizzo del gateway dei componenti con VPC-SC
Il gateway dei componenti supporta
Controlli di servizio VPC.
Per l'applicazione del perimetro di servizio, le richieste alle interfacce tramite il gateway dei componenti
trattati come parte della piattaforma dell'API Dataproc e qualsiasi criterio di accesso
controllerai le autorizzazioni per dataproc.googleapis.com
controllerà anche l'accesso a
UI del gateway dei componenti.
Il gateway dei componenti supporta anche le configurazioni VPC-SC che si basano su
connettività Google privata
per i cluster Dataproc senza indirizzi IP esterni, ma devi manualmente
configurare la rete per consentire l'accesso dalla VM master Dataproc a *.dataproc.cloud.google.com
tramite l'intervallo IP virtuale di Google limitato 199.36.153.4/30
nel seguente modo:
- Segui le istruzioni per configurare la connettività privata di Google per tutte le API di Google.
- Configura DNS con Cloud DNS oppure
configurare il DNS in locale sul nodo master di Dataproc
per consentire l'accesso a
*.dataproc.cloud.google.com
.
Configura DNS con Cloud DNS
Crea una zona Cloud DNS che mappa il traffico destinato a *.dataproc.cloud.google.com
all'intervallo IP virtuale limitato dell'API di Google.
Crea una zona privata gestita per la tua rete VPC.
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 è un nome per la zona che stai creando. Ad esempio,
vpc
. Questo nome di zona verrà utilizzato in ciascuno dei passaggi seguenti.PROJECT_ID è l'ID del progetto che ospita il tuo rete VPC.
NETWORK_NAME è il nome della tua rete VPC.
DESCRIPTION è una descrizione facoltativa leggibile del nella zona gestita.
Avvia una transazione.
gcloud dns record-sets transaction start --zone=ZONE_NAME
- ZONE_NAME è il nome della tua zona.
Aggiungi i record 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 è il nome della tua zona.
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 è il nome della tua zona.
Esegui la transazione.
gcloud dns record-sets transaction execute --zone=ZONE_NAME --project=PROJECT_ID
ZONE_NAME è il nome della tua zona.
PROJECT_ID è l'ID del progetto che ospita il tuo rete VPC.
Configura il DNS in locale sul nodo master Dataproc con un'azione di inizializzazione
Puoi configurare localmente i nodi master DNS di Dataproc per consentire l'accesso
connettività a dataproc.cloud.google.com
. Questa procedura è destinata
test e sviluppo a breve termine. Opzione sconsigliata
per l'utilizzo nei carichi di lavoro di produzione.
Mettere temporaneamente l'azione di inizializzazione su 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 è un bucket Cloud Storage accessibile dal cluster Dataproc.
Creare un cluster Dataproc con l'azione di inizializzazione graduale e Gateway dei componenti abilitato.
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 è il bucket Cloud Storage utilizzato nel passaggio 1 precedente.
Utilizzo programmatico delle API HTTP tramite il gateway dei componenti
Il gateway dei componenti è un proxy che incorpora Apache Knox. Endpoint esposti da
Apache Knox sono disponibili tramite
https://component-gateway-base-url/component-path
.
Per eseguire l'autenticazione programmatica con il gateway dei componenti, passa l'intestazione
Proxy-Authorization
con un
Token di connessione 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,
...
Il gateway dei componenti rimuove l'intestazione Proxy-Authorization
prima dell'inoltro
delle richieste ad Apache Knox.
Per trovare l'URL di base del gateway dei componenti, esegui:
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/
...
L'URL di base è lo schema e le parti dell'autorità degli URL in
httpPorts
. In questo esempio, è https://xxxxxxxxxxxxxxx-dot-us-central1.dataproc.googleusercontent.com/
.
Come rigenerare il certificato SSL del gateway dei componenti
Il certificato SSL predefinito del gateway dei componenti Knox Gateway è valido per:
5 anni dalla data di creazione del cluster Dataproc sui cluster creati con immagini versioni 2.0.93, 2.1.41, 2.2.7 e successive.
13 mesi dalla data di creazione del cluster Dataproc sui cluster creati utilizzando versioni immagine precedenti.
Se il certificato scade, tutti gli URL dell'interfaccia web del gateway dei componenti diventano non attivo.
Se la tua organizzazione ha fornito il certificato SSL, ottienine uno nuovo da l'organizzazione e sostituire il vecchio certificato con quello nuovo.
Se utilizzi il certificato SSL autofirmato predefinito, rinnovalo come segue:
Utilizza SSH per connetterti al Nodo master del cluster Dataproc con nome
m-0
suffisso.Individua
gateway.jks
in/var/lib/knox/security/keystores/gateway.jks
del tuo percorso di apprendimento.keytool -list -v -keystore /var/lib/knox/security/keystores/gateway.jks
Sposta il file
gateway.jks
in una directory di backup.mv /var/lib/knox/security/keystores/gateway.jks /tmp/backup/gateway.jks
Crea un nuovo certificato autofirmato riavviando il servizio Knox.
systemctl restart knox
Verifica lo stato del gateway dei componenti e di Knox.
systemctl status google-dataproc-component-gateway systemctl status knox
Passaggi successivi
- Crea un cluster con Componenti di Dataproc.