Vorlage für Hive zu Cloud Storage

Verwenden Sie die Vorlage "Dataproc Serverless Hive für Cloud Storage", um Daten aus Hive in Cloud Storage zu extrahieren.

Vorlage verwenden

Führen Sie die Vorlage mithilfe der gcloud CLI oder Dataproc API aus.

gcloud

Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: erforderlich. Ihre Google Cloud-Projekt-ID, die in den IAM-Einstellungen aufgeführt ist.
  • REGION: erforderlich. Compute Engine-Region.
  • TEMPLATE_VERSION: erforderlich. Geben Sie latest für die neueste Vorlagenversion oder das Datum einer bestimmten Version an, z. B. 2023-03-17_v0.1.0-beta. Rufen Sie gs://dataproc-templates-binaries auf oder führen Sie gsutil ls gs://dataproc-templates-binaries aus, um die verfügbaren Vorlagenversionen aufzulisten.
  • SUBNET: Optional. Wenn kein Subnetz angegeben ist, wird das Subnetz in der angegebenen REGION im Netzwerk default ausgewählt.

    Beispiel: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

  • HOST und PORT: Erforderlich. Hostname oder IP-Adresse und Port des Hive-Quelldatenbankhosts.

    Beispiel: 10.0.0.33

  • TABLE: erforderlich. Name der Hive-Eingabetabelle.
  • DATABASE: erforderlich. Name der Hive-Eingabedatenbank.
  • CLOUD_STORAGE_OUTPUT_PATH: erforderlich. Cloud Storage-Pfad, unter dem die Ausgabe gespeichert wird.

    Beispiel: gs://dataproc-templates/hive_to_cloud_storage_output

  • FORMAT: Optional. Format der Ausgabedaten. Optionen: avro, parquet, csv oder json. Standardeinstellung: avro. Hinweis: Wenn avro, müssen Sie file:///usr/lib/spark/external/spark-avro.jar zum gcloud CLI-Flag oder API-Feld jars hinzufügen.

    Beispiel (das Präfix file:// verweist auf eine JAR-Datei von Dataproc Serverless):

    --jars=file:///usr/lib/spark/external/spark-avro.jar, [, ... weitere Gläser]
  • HIVE_PARTITION_COLUMN: Optional. Spalte zum Partitionieren von Hive-Daten.
  • MODE: erforderlich. Schreibmodus für Cloud Storage-Ausgabe. Optionen: append, overwrite, ignore oder errorifexists.
  • SERVICE_ACCOUNT: Optional. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.
  • PROPERTY und PROPERTY_VALUE: Optional. Durch Kommas getrennte Liste von Spark property=value-Paaren.
  • LABEL und LABEL_VALUE: Optional. Durch Kommas getrennte Liste von label=value-Paaren.
  • LOG_LEVEL: Optional. Protokollebene. Kann ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE oder WARN sein. Standardeinstellung: INFO.
  • KMS_KEY: Optional. Der Cloud Key Management Service-Schlüssel, der für die Verschlüsselung verwendet werden soll. Wenn kein Schlüssel angegeben ist, werden ruhende Daten mit einem Schlüssel verschlüsselt, der Google gehört und von Google verwaltet wird.

    Beispiel: projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Führen Sie den folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud dataproc batches submit spark \
    --class=com.google.cloud.dataproc.templates.main.DataProcTemplate \
    --version="1.1" \
    --project="PROJECT_ID" \
    --region="REGION" \
    --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar" \
    --subnet="SUBNET" \
    --kms-key="KMS_KEY" \
    --service-account="SERVICE_ACCOUNT" \
    --properties="spark.hadoop.hive.metastore.uris=thrift://HOST:PORT,PROPERTY=PROPERTY_VALUE" \
    --labels="LABEL=LABEL_VALUE" \
    -- --template=HIVETOGCS \
    --templateProperty log.level="LOG_LEVEL" \
    --templateProperty hive.input.table="TABLE" \
    --templateProperty hive.input.db="DATABASE" \
    --templateProperty hive.gcs.output.path="CLOUD_STORAGE_OUTPUT_PATH" \
    --templateProperty hive.gcs.output.format="FORMAT" \
    --templateProperty hive.partition.col="HIVE_PARTITION_COLUMN" \
    --templateProperty hive.gcs.save.mode="MODE"

Windows (PowerShell)

gcloud dataproc batches submit spark `
    --class=com.google.cloud.dataproc.templates.main.DataProcTemplate `
    --version="1.1" `
    --project="PROJECT_ID" `
    --region="REGION" `
    --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar" `
    --subnet="SUBNET" `
    --kms-key="KMS_KEY" `
    --service-account="SERVICE_ACCOUNT" `
    --properties="spark.hadoop.hive.metastore.uris=thrift://HOST:PORT,PROPERTY=PROPERTY_VALUE" `
    --labels="LABEL=LABEL_VALUE" `
    -- --template=HIVETOGCS `
    --templateProperty log.level="LOG_LEVEL" `
    --templateProperty hive.input.table="TABLE" `
    --templateProperty hive.input.db="DATABASE" `
    --templateProperty hive.gcs.output.path="CLOUD_STORAGE_OUTPUT_PATH" `
    --templateProperty hive.gcs.output.format="FORMAT" `
    --templateProperty hive.partition.col="HIVE_PARTITION_COLUMN" `
    --templateProperty hive.gcs.save.mode="MODE"

Windows (cmd.exe)

gcloud dataproc batches submit spark ^
    --class=com.google.cloud.dataproc.templates.main.DataProcTemplate ^
    --version="1.1" ^
    --project="PROJECT_ID" ^
    --region="REGION" ^
    --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar" ^
    --subnet="SUBNET" ^
    --kms-key="KMS_KEY" ^
    --service-account="SERVICE_ACCOUNT" ^
    --properties="spark.hadoop.hive.metastore.uris=thrift://HOST:PORT,PROPERTY=PROPERTY_VALUE" ^
    --labels="LABEL=LABEL_VALUE" ^
    -- --template=HIVETOGCS ^
    --templateProperty log.level="LOG_LEVEL" ^
    --templateProperty hive.input.table="TABLE" ^
    --templateProperty hive.input.db="DATABASE" ^
    --templateProperty hive.gcs.output.path="CLOUD_STORAGE_OUTPUT_PATH" ^
    --templateProperty hive.gcs.output.format="FORMAT" ^
    --templateProperty hive.partition.col="HIVE_PARTITION_COLUMN" ^
    --templateProperty hive.gcs.save.mode="MODE"

REST

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: erforderlich. Ihre Google Cloud-Projekt-ID, die in den IAM-Einstellungen aufgeführt ist.
  • REGION: erforderlich. Compute Engine-Region.
  • TEMPLATE_VERSION: erforderlich. Geben Sie latest für die neueste Vorlagenversion oder das Datum einer bestimmten Version an, z. B. 2023-03-17_v0.1.0-beta. Rufen Sie gs://dataproc-templates-binaries auf oder führen Sie gsutil ls gs://dataproc-templates-binaries aus, um die verfügbaren Vorlagenversionen aufzulisten.
  • SUBNET: Optional. Wenn kein Subnetz angegeben ist, wird das Subnetz in der angegebenen REGION im Netzwerk default ausgewählt.

    Beispiel: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

  • HOST und PORT: Erforderlich. Hostname oder IP-Adresse und Port des Hive-Quelldatenbankhosts.

    Beispiel: 10.0.0.33

  • TABLE: erforderlich. Name der Hive-Eingabetabelle.
  • DATABASE: erforderlich. Name der Hive-Eingabedatenbank.
  • CLOUD_STORAGE_OUTPUT_PATH: erforderlich. Cloud Storage-Pfad, unter dem die Ausgabe gespeichert wird.

    Beispiel: gs://dataproc-templates/hive_to_cloud_storage_output

  • FORMAT: Optional. Format der Ausgabedaten. Optionen: avro, parquet, csv oder json. Standardeinstellung: avro. Hinweis: Wenn avro, müssen Sie file:///usr/lib/spark/external/spark-avro.jar zum gcloud CLI-Flag oder API-Feld jars hinzufügen.

    Beispiel (das Präfix file:// verweist auf eine JAR-Datei von Dataproc Serverless):

    --jars=file:///usr/lib/spark/external/spark-avro.jar, [, ... weitere Gläser]
  • HIVE_PARTITION_COLUMN: Optional. Spalte zum Partitionieren von Hive-Daten.
  • MODE: erforderlich. Schreibmodus für Cloud Storage-Ausgabe. Optionen: append, overwrite, ignore oder errorifexists.
  • SERVICE_ACCOUNT: Optional. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.
  • PROPERTY und PROPERTY_VALUE: Optional. Durch Kommas getrennte Liste von Spark property=value-Paaren.
  • LABEL und LABEL_VALUE: Optional. Durch Kommas getrennte Liste von label=value-Paaren.
  • LOG_LEVEL: Optional. Protokollebene. Kann ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE oder WARN sein. Standardeinstellung: INFO.
  • KMS_KEY: Optional. Der Cloud Key Management Service-Schlüssel, der für die Verschlüsselung verwendet werden soll. Wenn kein Schlüssel angegeben ist, werden ruhende Daten mit einem Schlüssel verschlüsselt, der Google gehört und von Google verwaltet wird.

    Beispiel: projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

HTTP-Methode und URL:

POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/batches

JSON-Text der Anfrage:

{
  "environmentConfig":{
    "executionConfig":{
      "subnetworkUri":"SUBNET",
      "kmsKey": "KMS_KEY",
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  },
  "labels": {
    "LABEL": "LABEL_VALUE"
  },
  "runtimeConfig": {
    "version": "1.1",
    "properties": {
      "spark.hadoop.hive.metastore.uris":"thrift://HOST:PORT",
      "PROPERTY": "PROPERTY_VALUE"
    }
  },
  "sparkBatch":{
    "mainClass":"com.google.cloud.dataproc.templates.main.DataProcTemplate",
    "args":[
      "--template","HIVETOGCS",
      "--templateProperty","log.level=LOG_LEVEL",
      "--templateProperty","hive.input.table=TABLE",
      "--templateProperty","hive.input.db=DATABASE",
      "--templateProperty","hive.gcs.output.path=CLOUD_STORAGE_OUTPUT_PATH",
      "--templateProperty","hive.gcs.output.format=FORMAT",
      "--templateProperty","hive.partition.col=HIVE_PARTITION_COLUMN",
      "--templateProperty","hive.gcs.save.mode=MODE"
    ],
    "jarFileUris":[
      "file:///usr/lib/spark/external/spark-avro.jar",
      "gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar"
    ]
  }
}

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/regions/REGION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.dataproc.v1.BatchOperationMetadata",
    "batch": "projects/PROJECT_ID/locations/REGION/batches/BATCH_ID",
    "batchUuid": "de8af8d4-3599-4a7c-915c-798201ed1583",
    "createTime": "2023-02-24T03:31:03.440329Z",
    "operationType": "BATCH",
    "description": "Batch"
  }
}