Apache Spark-Batcharbeitslast ausführen

Hier erfahren Sie, wie Sie mit Dataproc Serverless eine Batcharbeitslast auf einem Von Dataproc verwaltete Computing-Infrastruktur, die Ressourcen nach Bedarf skaliert

Hinweise

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Dataproc API aktivieren.

    Aktivieren Sie die API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  7. Dataproc API aktivieren.

    Aktivieren Sie die API

Spark-Batcharbeitslast senden

Console

  1. Rufen Sie in der Google Cloud Console Dataproc Batches auf. Klicken Sie auf Erstellen. um die Seite Batch erstellen zu öffnen.

  2. Wählen Sie auf der Seite die folgenden Felder aus und füllen Sie sie aus, um einen Spark-Batch zu senden Arbeitslast, die den ungefähren PI-Wert berechnet:

    • Batch-Informationen: <ph type="x-smartling-placeholder">
        </ph>
      • Batch-ID: Geben Sie eine ID für Ihre Batcharbeitslast an. Dieser Wert muss zwischen 4 und 63 liegen Kleinbuchstaben. Gültige Zeichen sind /[a-z][0-9]-/.
      • Region: Wählen Sie eine Region aus. wo die Arbeitslast ausgeführt wird.
    • Container: <ph type="x-smartling-placeholder">
        </ph>
      • Batchtyp: Spark.
      • Laufzeitversion: Die Standardlaufzeitversion ist ausgewählt. Optional können Sie einen eine nicht standardmäßige Dataproc Serverless-Laufzeitversion.
      • Hauptklasse:
        org.apache.spark.examples.SparkPi
      • JAR-Dateien: Diese Datei ist in der serverlosen Spark-Ausführungsumgebung von Dataproc vorinstalliert.
        file:///usr/lib/spark/examples/jars/spark-examples.jar
      • Argumente: 1.000.
    • Ausführungskonfiguration:Sie können eine Dienstkonto zum Ausführen Ihrer Arbeitslast. Wenn Sie kein Dienstkonto angeben, unter der Standardmäßiges Compute Engine-Dienstkonto
    • Netzwerkkonfiguration: Das VPC-Subnetzwerk, das Dataproc Serverless für Spark-Arbeitslasten ausführt, aktiviert sein für Privater Google-Zugriff und die anderen Anforderungen erfüllen, die in Dataproc Serverless for Spark-Netzwerkkonfiguration. In der Liste der Subnetzwerke werden Subnetze im ausgewählten Netzwerk angezeigt, für die Privater Google-Zugriff.
    • Properties (Eigenschaften): Geben Sie Key (Property-Name) und Value von unterstützte Spark-Attribute die für Ihre Spark-Batcharbeitslast festgelegt werden soll. Hinweis: Im Gegensatz zu Dataproc in Compute Engine Clusterattribute Dataproc Serverless for Spark-Arbeitslastattribute enthalten keine spark: .
    • Weitere Optionen: <ph type="x-smartling-placeholder">
  3. Klicken Sie auf SENDEN, um die Spark-Batcharbeitslast auszuführen.

gcloud

So senden Sie eine Spark-Batcharbeitslast, um den ungefähren Wert zu berechnen. von pi, führen Sie die folgende gcloud CLI aus gcloud dataproc batches submit spark in einem Terminalfenster oder in Cloud Shell

gcloud dataproc batches submit spark \
    --region=REGION \
    --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
    --class=org.apache.spark.examples.SparkPi \
    -- 1000

Hinweise:

  • REGION: Geben Sie die Region an. wo die Arbeitslast ausgeführt wird.
  • Subnetzwerk: Das VPC-Subnetzwerk, das Dataproc Serverless für Spark-Arbeitslasten ausführt, Es muss für den privaten Google-Zugriff aktiviert sein. und die anderen Anforderungen erfüllen, die in Dataproc Serverless for Spark-Netzwerkkonfiguration. Wenn das Subnetz des default-Netzwerks für die Die im Befehl gcloud dataproc batches submit angegebene Region ist für Privater Google-Zugriff, müssen Sie einen der folgenden Schritte ausführen:
    • Aktivieren Sie das Subnetz des Standardnetzwerks für die Region für den privater Google-Zugriff oder
    • Verwenden Sie im Befehl das Flag --subnet=[SUBNET_URI]. , um ein Subnetz anzugeben, für das der privater Google-Zugriff aktiviert ist. Sie können den gcloud compute networks describe [NETWORK_NAME] ausführen , um die URIs von Subnetzen in einem Netzwerk aufzulisten.
  • --jars: Die JAR-Beispieldatei ist in der Spark-Ausführungsumgebung vorinstalliert. Das Befehlsargument 1000, das an die SparkPi-Arbeitslast übergeben wird, gibt 1.000 an Iterationen der PI-Schätzlogik (Arbeitslasteingabeargumente sind nach "--" eingefügt werden.
  • --properties:Sie können den --properties hinzufügen. Flagge unterstützte Spark-Attribute die Ihre Spark-Batcharbeitslast verwenden soll.
  • --deps-bucket:Sie können dieses Flag Geben Sie einen Cloud Storage-Bucket an, in dem Dataproc Serverless werden die Arbeitslastabhängigkeiten hochgeladen. Das URI-Präfix gs:// des Buckets ist nicht erforderlich. können Sie den Bucket-Pfad oder den Bucket-Namen für Beispiel: „mybucketname“. Dataproc Serverless for Spark lädt die lokalen Datei(en) vor der Ausführung in einen /dependencies-Ordner im Bucket der Batcharbeitslast. Hinweis:Dieses Flag ist erforderlich, wenn Ihr Batch Arbeitslast verweist auf Dateien auf Ihrem lokalen Computer.
  • --ttl:Sie können den Parameter --ttl Flag, um die Dauer der Batchlebensdauer anzugeben. Wenn die Arbeitslast überschreitet innerhalb dieser Dauer, wird sie bedingungslos beendet, ohne die fortlaufende Arbeit abzuschließen. Geben Sie die Dauer mit einem s, m, h oder d (Sekunden, Minuten, Stunden oder Tage) einfügen. Der Mindestwert beträgt 10 Minuten (10m). und der Maximalwert 14 Tage (14d) beträgt. <ph type="x-smartling-placeholder">
      </ph>
    • Laufzeit-Batches 1.1 oder 2.0:wenn --ttl nicht angegeben ist Bei einer Batcharbeitslast mit einer Laufzeit von 1.1 oder 2.0 darf die Arbeitslast ausgeführt werden, bis sie beendet wird. natürlich (oder für immer laufen, falls er nicht beendet wird).
    • Laufzeit-Batches ab 2.1:wenn --ttl nicht angegeben ist Bei Batcharbeitslasten mit 2.1 oder höher wird standardmäßig 4h verwendet.
  • Weitere Optionen:Sie können gcloud dataproc batches submit Befehls-Flags zum Angeben anderer Arbeitslastoptionen und Spark-Attribute.
    • Hive Metastore: Mit dem folgenden Befehl wird eine Batcharbeitslast für die Verwendung einer externen Instanz konfiguriert. selbstverwalteter Hive Metastore mit einer Spark-Standardkonfiguration.
      gcloud dataproc batches submit \
          --properties=spark.sql.catalogImplementation=hive,spark.hive.metastore.uris=METASTORE_URI,spark.hive.metastore.warehouse.dir=WAREHOUSE_DIR> \
          other args ...
              
    • Persistent History Server:
      1. Mit dem folgenden Befehl wird ein PHS auf einem Dataproc mit einem Knoten erstellt. Cluster. Der PHS muss sich in der Region befinden, in der Sie Batcharbeitslasten ausführen. und die Cloud Storage-bucket-name muss existieren.
        gcloud dataproc clusters create PHS_CLUSTER_NAME \
            --region=REGION \
            --single-node \
            --enable-component-gateway \
            --properties=spark:spark.history.fs.logDirectory=gs://bucket-name/phs/*/spark-job-history
                     
      2. Senden Sie eine Batcharbeitslast, indem Sie den ausgeführten Persistent History Server angeben.
        gcloud dataproc batches submit spark \
            --region=REGION \
            --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
            --class=org.apache.spark.examples.SparkPi \
            --history-server-cluster=projects/project-id/regions/region/clusters/PHS-cluster-name \
            -- 1000
                      
    • Laufzeitversion: Verwenden Sie das Flag --version, um Dataproc Serverless anzugeben Laufzeitversion für die Arbeitslast.
      gcloud dataproc batches submit spark \
          --region=REGION \
          --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
          --class=org.apache.spark.examples.SparkPi \
          --version=VERSION
          -- 1000
                  

API

In diesem Abschnitt wird gezeigt, wie Sie eine Batcharbeitslast erstellen um den ungefähren Wert zu berechnen, von pi mit Dataproc Serverless für Spark batches.create`

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: Eine Google Cloud-Projekt-ID.
  • region: Eine Compute Engine-Region in dem Dataproc Serverless die Arbeitslast ausführt.
  • Hinweise: <ph type="x-smartling-placeholder">
      </ph>
    • Custom-container-image: Geben Sie das benutzerdefinierte Container-Image mithilfe der Methode Namensformat für Docker-Images: {hostname}/{project-id}/{image}:{tag}, Beispiel: „gcr.io/my-project-id/my-image:1.0.1“. Hinweis: Der benutzerdefinierte Container muss auf folgendem Gerät gehostet werden: Container Registry.
    • Subnetzwerk: Das VPC-Subnetzwerk, das Dataproc Serverless für Spark-Arbeitslasten ausführt, Es muss für den privaten Google-Zugriff aktiviert sein. und die anderen Anforderungen erfüllen, die in Dataproc Serverless for Spark-Netzwerkkonfiguration. Wenn die default Das Subnetz des Netzwerks für die angegebene Region ist nicht aktiviert für Privater Google-Zugriff, müssen Sie einen der folgenden Schritte ausführen:
      1. Aktivieren Sie das Subnetz des Standardnetzwerks für die Region für den privater Google-Zugriff oder
      2. Verwenden Sie die Methode ExecutionConfig.subnetworkUri zur Angabe eines Subnetzes, für das der privater Google-Zugriff aktiviert ist. Sie können den gcloud compute networks describe [NETWORK_NAME] ausführen , um die URIs von Subnetzen in einem Netzwerk aufzulisten.
    • sparkBatch.jarFileUris:Die JAR-Beispieldatei ist in der Spark-Ausführungsumgebung vorinstalliert. Die „1000“ sparkBatch.args wird an die SparkPi-Arbeitslast übergeben und gibt 1.000 Iterationen der PI-Schätzung vor. Logik.
    • Spark properties:Sie können die Methode RuntimeConfig.properties in das Feld unterstützte Spark-Attribute die Ihre Spark-Batcharbeitslast verwenden soll.
    • --ttl:Sie können die Methode EnvironmentConfig.ttl , um die Dauer der Batchlebensdauer anzugeben. Wenn die Arbeitslast überschreitet innerhalb dieser Dauer, wird sie bedingungslos beendet, ohne die fortlaufende Arbeit abzuschließen. Geben Sie die Dauer als JSON-Darstellung für Duration Der Mindestwert beträgt 10 Minuten und der Höchstwert 14 Tage.
      • Laufzeit-Batches 1.1 oder 2.0:wenn --ttl nicht angegeben ist Bei einer Batcharbeitslast mit einer Laufzeit von 1.1 oder 2.0 darf die Arbeitslast ausgeführt werden, bis sie beendet wird. natürlich (oder für immer laufen, falls er nicht beendet wird).
      • Laufzeit-Batches ab 2.1:wenn --ttl nicht angegeben ist Bei Batcharbeitslasten mit 2.1 oder höher ist der Standardwert 4 Stunden.
    • Weitere Optionen: <ph type="x-smartling-placeholder">

    HTTP-Methode und URL:

    POST https://dataproc.googleapis.com/v1/projects/project-id/locations/region/batches

    JSON-Text anfordern:

    {
      "sparkBatch":{
        "args":[
          "1000"
        ],
        "jarFileUris":[
          "file:///usr/lib/spark/examples/jars/spark-examples.jar"
        ],
        "mainClass":"org.apache.spark.examples.SparkPi"
      }
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    {
    "name":"projects/project-id/locations/region/batches/batch-id",
      "uuid":",uuid",
      "createTime":"2021-07-22T17:03:46.393957Z",
      "sparkBatch":{
        "mainClass":"org.apache.spark.examples.SparkPi",
        "args":[
          "1000"
        ],
        "jarFileUris":[
          "file:///usr/lib/spark/examples/jars/spark-examples.jar"
        ]
      },
      "runtimeInfo":{
        "outputUri":"gs://dataproc-.../driveroutput"
      },
      "state":"SUCCEEDED",
      "stateTime":"2021-07-22T17:06:30.301789Z",
      "creator":"account-email-address",
      "runtimeConfig":{
        "properties":{
          "spark:spark.executor.instances":"2",
          "spark:spark.driver.cores":"2",
          "spark:spark.executor.cores":"2",
          "spark:spark.app.name":"projects/project-id/locations/region/batches/batch-id"
        }
      },
      "environmentConfig":{
        "peripheralsConfig":{
          "sparkHistoryServerConfig":{
          }
        }
      },
      "operation":"projects/project-id/regions/region/operation-id"
    }
    

Arbeitslastkosten schätzen

Dataproc Serverless für Spark-Arbeitslasten nutzt Data Compute Unit (DCU) und Shuffle-Speicherressourcen. Für eine Beispiel für die Ausgabe von Dataproc UsageMetrics um den Verbrauch und die Kosten der Arbeitslastressourcen zu schätzen, Siehe Dataproc Serverless-Preise .

Nächste Schritte

Hier erfahren Sie mehr über: