Personalizza Apache Spark i tempi di esecuzione in IBM Analytics Engine
Dopo l'installazione IBM Analytics Engine powered by Apache Spark, un amministratore di istanza può personalizzare il Apache Spark runtime creando un'immagine container che estende il runtime predefinito. Utilizza questa immagine per aggiungere pacchetti di sistema, Python librerie o file JAR richiesti dai tuoi carichi di lavoro.
Prima di iniziare
Assicurati di avere quanto segue:
- Accesso a un Cloud Pak for Data cluster con Analytics Engine installato.
- Privilegi di amministratore per eseguire i comandi
ocdockere. - ID immagine di base per la versione Spark che desideri personalizzare:
- Scintilla 3.4:
os-image-id-jkg34-cp4d-wxd - Scintilla 3.5:
os-image-id-jkg35-cp4d-wxd
- Scintilla 3.4:
- Un ambiente di Docker lavoro per costruire l'immagine.
Passi
- Ottieni i dettagli dell'immagine di base:
Esegui il seguente comando per recuperare l'immagine di base e il tag. Sostituisci
<os-image-id>con l'ID appropriato per la tua versione di Spark.cpd-instancedeve essere sostituito con lo spazio dei nomi in cui è installato CPDoc get cm -n cpd-instance spark-hb-cluster-template \ -o=jsonpath='{$.data.os-image-json}' \ | jq -r '.docs[] | select(._id | test("<os-image-id>")) | "\(.docker_repo)/\(.docker_image)@\(.docker_image_tag)"'Dall'output, copia i seguenti valori:
REGISTRY=<docker_repo> IMAGE_NAME=<docker_image>
- Crea un file denominato
Dockerfilecon il seguente contenuto:ARG REGISTRY ARG IMAGE_NAME FROM ${REGISTRY}/${IMAGE_NAME} USER root:3000 COPY *.sh /tmp/ RUN bash /tmp/install-os-packages.sh && \ bash /tmp/install-conda-packages.sh && \ bash /tmp/install-jar.sh USER ${CLUSTER_USER} WORKDIR ${WORK_DIR} - Creare gli script di personalizzazione:
- installare-
os-packages.sh#!/bin/bash set -e -o pipefail # Install operating system packages microdnf update -y microdnf install -y vim - installazione
-jar.sh#!/bin/bash set -e -o pipefail # Install additional JAR files wget -c -P /opt/ibm/spark/external-jars/ \ https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.18.0/jackson-databind-2.18.0.jar
- installare-
- Crea l'immagine personalizzata:
Per ottenere il digest dell'immagine di base:
os_image_json=$(oc get cm spark-hb-cluster-template -o jsonpath='{.data.os-image-json}' -n <namespace>) echo "$os_image_json" | grep -A 6 '"docker_image": "spark-hb-cpd-miniconda-runtimes"' | grep 'docker_image_tag' | awk -F': "' '{print $2}' | sed 's/"$//'- Utilizza il digest per creare la tua immagine personalizzata:
docker build -t <YOUR_REGISTRY>/spark-hb-cpd-miniconda-runtimes:custom-runtime \ --build-arg REGISTRY=<YOUR_REGISTRY> \ --build-arg IMAGE_NAME=<image_name_COPIED>
- Configura l'immagine personalizzata:
- Livello cluster
Aggiorna la risorsa
AnalyticsEnginepersonalizzata:spec: customSparkImage: <your_custom_image_digest> builtInSparkImages: <existing_images> - Livello istanzaEsegui il seguente comando per applicare la patch alla configurazione predefinita:
curl -k --request PATCH https://<cpd-url>/v4/analytics_engines/<engine_id>/default_configs \ -H "Authorization: Bearer $TOKEN" \ --data-raw '{ "ae.spark.kubernetes.container.image": "<your_custom_image_digest>", "ae.spark.kubernetes.driver.container.image": "", "ae.spark.kubernetes.executor.container.image": "" }' - Livello di processo o kernelSpecificare l'immagine nella configurazione del lavoro:
"conf": { "ae.spark.kubernetes.container.image": "<your_custom_image_digest>", "ae.spark.kubernetes.driver.container.image": "", "ae.spark.kubernetes.executor.container.image": "" }
- Livello cluster
Cosa fare successivamente
Completa le seguenti operazioni in ordine prima che gli utenti possano accedere al servizio:
- Un amministratore di istanza può impostare la scala del servizio e regolare il numero di pod disponibili. Vedi Servizi di ridimensionamento.
- Prima di poter inviare lavori Spark utilizzando l'API dei lavori Spark, è necessario fornire un'istanza di servizio. Vedere Provisioning dell'istanza di servizio.
- Il servizio è pronto per l'uso. Vedi Ambienti Spark.