Avvio del server della cronologia di Spark - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Avvio del server della cronologia di Spark

Puoi utilizzare un server della cronologia Spark per visualizzare i log di Spark sull'infrastruttura. Puoi osservare le stesse visualizzazioni nella console AWS Glue per le esecuzioni dei processi AWS Glue su versioni AWS Glue 4.0 o successive con log generati nel formato Standard (anziché legacy). Per ulteriori informazioni, consulta Monitoraggio dei processi tramite l'interfaccia utente Web di Apache Spark.

Puoi avviare il server della cronologia di Spark utilizzando un modello AWS CloudFormation che ospita il server su un'istanza EC2 o avviarlo localmente utilizzando Docker.

Avvio del server della cronologia di Spark e visualizzazione dell'interfaccia utente di Spark tramite AWS CloudFormation

Puoi utilizzare un modello AWS CloudFormation per avviare il server della cronologia di Apache Spark e visualizzare l'interfaccia utente Web di Spark. Questi modelli sono esempi che è necessario modificare per soddisfare i requisiti.

Per avviare il server della cronologia di Spark e visualizzare l'interfaccia utente di Spark utilizzando AWS CloudFormation
  1. Scegli uno dei pulsanti Launch Stack (Avvia stack) nella tabella seguente. Questo avvia lo stack nella console AWS CloudFormation.

    Regione Avvia
    Stati Uniti orientali (Ohio) Orange button labeled "Launch Stack" with an arrow icon.
    Stati Uniti orientali (Virginia settentrionale) Orange button labeled "Launch Stack" with an arrow icon.
    Stati Uniti occidentali (California settentrionale) Orange button labeled "Launch Stack" with an arrow icon.
    Stati Uniti occidentali (Oregon) Orange button labeled "Launch Stack" with an arrow icon.
    Africa (Città del Capo) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacific (Hong Kong) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacific (Mumbai) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacific (Osaka) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacific (Seul) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacifico (Singapore) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacifico (Sydney) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacifico (Tokyo) Orange button labeled "Launch Stack" with an arrow icon.
    Canada (Centrale) Orange button labeled "Launch Stack" with an arrow icon.
    Europa (Francoforte) Orange button labeled "Launch Stack" with an arrow icon.
    Europa (Irlanda) Orange button labeled "Launch Stack" with an arrow icon.
    Europa (Londra) Orange button labeled "Launch Stack" with an arrow icon.
    Europa (Milano) Orange button labeled "Launch Stack" with an arrow icon.
    Europa (Parigi) Orange button labeled "Launch Stack" with an arrow icon.
    Europa (Stoccolma) Orange button labeled "Launch Stack" with an arrow icon.
    Medio Oriente (Bahrein) Orange button labeled "Launch Stack" with an arrow icon.
    Sud America (San Paolo) Orange button labeled "Launch Stack" with an arrow icon.
  2. Nella pagina Specify template (Specifica modello), scegli Next (Avanti).

  3. Nella pagina Specify stack details (Specifica dettagli stack), immetti Stack name (Nome stack). Inserisci informazioni aggiuntive sotto Parameters (Parametri).

    1. Configurazione dell'interfaccia utente di Spark

      Inserisci le informazioni che seguono:

      • Intervallo di indirizzi IP: l'intervallo di indirizzi IP che può essere utilizzato per visualizzare l'interfaccia utente di Spark. Se desideri limitare l'accesso da un intervallo di indirizzi IP specifico, devi utilizzare un valore personalizzato.

      • Porta del server di cronologia: la porta per l'interfaccia utente di Spark. Puoi usare il valore predefinito.

      • Directory del log di eventi: scegli la posizione in cui sono archiviati i log di eventi Spark dagli endpoint di sviluppo o dal processo AWS Glue. È necessario utilizzare s3a:// per lo schema di percorso dei log di eventi.

      • Posizione del pacchetto Spark: puoi usare il valore di default.

      • Percorso keystore: percorso keystore SSL/TLS per HTTPS. Se desideri utilizzare un file keystore personalizzato, puoi specificare il percorso S3 s3://path_to_your_keystore_file qui. Se lasci questo parametro vuoto, viene generato e utilizzato un keystore basato su certificato autofirmato.

      • Keystore password (Password keystore): inserisci una password del keystore SSL/TLS per HTTPS.

    2. Configurazione di un'istanza EC2

      Inserisci le informazioni che seguono:

      • Tipo di istanza: il tipo di istanza Amazon EC2 che ospita il server della cronologia di Spark. Poiché questo modello avvia un'istanza Amazon EC2 nel tuo account, il costo di Amazon EC2 verrà addebitato separatamente nel tuo account.

      • ID AMI più recente: l'ID AMI di Amazon Linux 2 per l'istanza del server della cronologia di Spark. Puoi usare il valore predefinito.

      • ID VPC: l'ID del cloud privato virtuale (VPC) per l'istanza del server della cronologia di Spark. Puoi utilizzare uno qualsiasi dei VPC disponibili nell'account. L'uso di un VPC predefinito con una lista di controllo degli accessi di rete predefinita non è consigliato. Per ulteriori informazioni, consulta VPC predefinito e sottoreti predefinite e Creazione di un VPC nella Guida per l'utente di Amazon VPC.

      • ID sottorete: l'ID dell'istanza del server della cronologia di Spark. Puoi utilizzare una qualsiasi delle sottoreti nel VPC. Devi essere in grado di raggiungere la rete dal client alla sottorete. Se desideri accedere tramite Internet, devi utilizzare una sottorete pubblica che dispone dell'Internet gateway nella tabella di routing.

    3. Seleziona Successivo.

  4. Sulla pagina Configure stack options (Impostazione di opzioni della pila), per utilizzare le credenziali utente correnti per determinare in che modo CloudFormation può creare, modificare o eliminare risorse nella pila, scegli Next (Successivo). Inoltre, nella sezione Autorizzazioni, è possibile specificare un ruolo da utilizzare al posto delle autorizzazioni utente correnti, dopodiché occorre scegliere Successivo.

  5. Nella pagina Review (Revisione), rivedi il modello.

    Scegli I acknowledge that AWS CloudFormation might create IAM resources (Acconsento alla creazione di risorse IAM da parte di AWS CloudFormation), quindi seleziona Create stack (Crea stack).

  6. Attendi la creazione dello stack.

  7. Apri la scheda Outputs (Output).

    1. Copia l'URL di SparkUiPublicUrl se utilizzi una sottorete pubblica.

    2. Copia l'URL di SparkUiPrivateUrl se utilizzi una sottorete privata.

  8. Apri un browser Web e incolla l'URL. Ciò consente di accedere al server tramite HTTPS sulla porta specificata. Il tuo browser potrebbe non riconoscere il certificato del server. Se ciò accade, ignora la protezione e procedi comunque.

Avvio del server della cronologia Spark e visualizzazione dell'interfaccia utente di Spark mediante Docker

Se preferisci l'accesso locale (non mantenere un'istanza EC2 per il server della cronologia Apache Spark), puoi anche utilizzare Docker per avviare il server della cronologia Apache Spark e visualizzare l'interfaccia utente di Spark in locale. Questo Dockerfile è un esempio che devi modificare per soddisfare i tuoi requisiti.

Prerequisiti

Per informazioni su come installare Docker sul laptop, vedi la community di Docker Engine.

Per avviare il server della cronologia Spark e visualizzare l'interfaccia utente di Spark in locale utilizzando Docker
  1. Scarica i file da GitHub.

    Scarica il Dockerfile e pom.xml dagli esempi di codice di AWS Glue.

  2. Stabilisci se desideri utilizzare le credenziali utente o le credenziali dell'utente federato per accedere a AWS.

    • Per utilizzare le credenziali utente correnti per l'accesso ad AWS, ottieni i valori per cui utilizzare AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY nel comando docker run. Per ulteriori informazioni, consulta Gestione delle chiavi di accesso per gli utenti IAM nella Guida per l'utente di IAM.

    • Per utilizzare gli utenti federati SAML 2.0 per accedere ad AWS, ottieni i valori per AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY e AWS_SESSION_TOKEN. Per ulteriori informazioni, consulta la sezione relativa alla richiesta di credenziali di sicurezza provvisorie

  3. Determina la posizione della directory del log di eventi da utilizzare nel comando docker run.

  4. Crea l'immagine Docker utilizzando i file nella directory locale, utilizzando il nome glue/sparkui e il tag latest.

    $ docker build -t glue/sparkui:latest .
  5. Crea e avvia il container docker.

    Nei comandi seguenti, utilizza i valori ottenuti in precedenza nei passaggi 2 e 3.

    1. Per creare il container docker utilizzando le credenziali utente, utilizza un comando simile al seguente

      docker run -itd -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory=s3a://path_to_eventlog -Dspark.hadoop.fs.s3a.access.key=AWS_ACCESS_KEY_ID -Dspark.hadoop.fs.s3a.secret.key=AWS_SECRET_ACCESS_KEY" -p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"
    2. Per creare il container docker utilizzando credenziali temporanee, utilizzare org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider come provider e fornisci i valori delle credenziali ottenuti nel passaggio 2. Per ulteriori informazioni, consult aUtilizzo delle credenziali di sessione con TemporaryAWS CredentialsProvider nella documentazione Hadoop: integrazione con Amazon Web Services.

      docker run -itd -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory=s3a://path_to_eventlog -Dspark.hadoop.fs.s3a.access.key=AWS_ACCESS_KEY_ID -Dspark.hadoop.fs.s3a.secret.key=AWS_SECRET_ACCESS_KEY -Dspark.hadoop.fs.s3a.session.token=AWS_SESSION_TOKEN -Dspark.hadoop.fs.s3a.aws.credentials.provider=org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" -p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"
    Nota

    Questi parametri di configurazione provengono dal Modulo Hadoop-AWS. Potrebbe essere necessario aggiungere una configurazione specifica in base al proprio caso d'uso. Ad esempio: gli utenti in regioni isolate dovranno configurare il spark.hadoop.fs.s3a.endpoint.

  6. Apri http://localhost:18080 nel browser per visualizzare l'interfaccia utente di Spark in locale.