Modèle Hive vers Cloud Storage
Utilisez le modèle "Serverless for Apache Spark Hive to Cloud Storage" pour extraire des données de Hive vers Cloud Storage.
Utiliser le modèle
Exécutez le modèle à l'aide de la gcloud CLI ou de l'API Dataproc.
gcloud
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : valeur obligatoire. L'ID de votre projet Google Cloud est indiqué dans les paramètres IAM.
- REGION : valeur obligatoire. Région Compute Engine.
- TEMPLATE_VERSION : valeur obligatoire. Spécifiez
latest
pour la dernière version du modèle ou la date d'une version spécifique, par exemple2023-03-17_v0.1.0-beta
(consultez gs://dataproc-templates-binaries ou exécutezgcloud storage ls gs://dataproc-templates-binaries
pour lister les versions de modèle disponibles). - SUBNET : facultatif. Si aucun sous-réseau n'est spécifié, le sous-réseau de la RÉGION spécifiée dans le réseau
default
est sélectionné.Exemple
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
- HOST et PORT : obligatoires.
Nom d'hôte ou adresse IP et port de l'hôte de la base de données Hive source.
Exemple
10.0.0.33
- TABLE : valeur obligatoire. Nom de la table d'entrée Hive.
- DATABASE : valeur obligatoire. Nom de la base de données Hive d'entrée.
- CLOUD_STORAGE_OUTPUT_PATH : valeur obligatoire. Chemin d'accès Cloud Storage où la sortie sera stockée.
Exemple
gs://dataproc-templates/hive_to_cloud_storage_output
- FORMAT : facultatif. Format des données de sortie. Options :
avro
,parquet
,csv
oujson
. Valeur par défaut :avro
. Remarque : Si la valeur estavro
, vous devez ajouterfile:///usr/lib/spark/connector/spark-avro.jar
à l'optionjars
de la gcloud CLI ou au champ de l'API.Exemple (le préfixe
file://
fait référence à un fichier JAR Serverless pour Apache Spark) :--jars=file:///usr/lib/spark/connector/spark-avro.jar,
[, ... autres fichiers JAR] - HIVE_PARTITION_COLUMN : facultatif. Colonne permettant de partitionner les données Hive.
- MODE : valeur obligatoire. Mode d'écriture pour la sortie Cloud Storage.
Options :
append
,overwrite
,ignore
ouerrorifexists
. - SERVICE_ACCOUNT : facultatif. Si aucune valeur n'est fournie, le compte de service Compute Engine par défaut est utilisé.
- PROPERTY et PROPERTY_VALUE : facultatifs. Liste de paires propriété Spark=
value
séparées par une virgule. - LABEL et LABEL_VALUE : facultatifs. Liste de paires
label
=value
séparées par une virgule. - LOG_LEVEL : facultatif. Niveau de journalisation. Il peut s'agir de
ALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
ouWARN
. Par défaut :INFO
. -
KMS_KEY : facultatif. Clé Cloud Key Management Service à utiliser pour le chiffrement. Si aucune clé n'est spécifiée, les données sont chiffrées au repos à l'aide d'une clé Google-owned and Google-managed encryption key.
Exemple
projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud dataproc batches submit spark \ --class=com.google.cloud.dataproc.templates.main.DataProcTemplate \ --version="1.2" \ --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.2" ` --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.2" ^ --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
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : valeur obligatoire. L'ID de votre projet Google Cloud est indiqué dans les paramètres IAM.
- REGION : valeur obligatoire. Région Compute Engine.
- TEMPLATE_VERSION : valeur obligatoire. Spécifiez
latest
pour la dernière version du modèle ou la date d'une version spécifique, par exemple2023-03-17_v0.1.0-beta
(consultez gs://dataproc-templates-binaries ou exécutezgcloud storage ls gs://dataproc-templates-binaries
pour lister les versions de modèle disponibles). - SUBNET : facultatif. Si aucun sous-réseau n'est spécifié, le sous-réseau de la RÉGION spécifiée dans le réseau
default
est sélectionné.Exemple
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
- HOST et PORT : obligatoires.
Nom d'hôte ou adresse IP et port de l'hôte de la base de données Hive source.
Exemple
10.0.0.33
- TABLE : valeur obligatoire. Nom de la table d'entrée Hive.
- DATABASE : valeur obligatoire. Nom de la base de données Hive d'entrée.
- CLOUD_STORAGE_OUTPUT_PATH : valeur obligatoire. Chemin d'accès Cloud Storage où la sortie sera stockée.
Exemple
gs://dataproc-templates/hive_to_cloud_storage_output
- FORMAT : facultatif. Format des données de sortie. Options :
avro
,parquet
,csv
oujson
. Valeur par défaut :avro
. Remarque : Si la valeur estavro
, vous devez ajouterfile:///usr/lib/spark/connector/spark-avro.jar
à l'optionjars
de la gcloud CLI ou au champ de l'API.Exemple (le préfixe
file://
fait référence à un fichier JAR Serverless pour Apache Spark) :--jars=file:///usr/lib/spark/connector/spark-avro.jar,
[, ... autres fichiers JAR] - HIVE_PARTITION_COLUMN : facultatif. Colonne permettant de partitionner les données Hive.
- MODE : valeur obligatoire. Mode d'écriture pour la sortie Cloud Storage.
Options :
append
,overwrite
,ignore
ouerrorifexists
. - SERVICE_ACCOUNT : facultatif. Si aucune valeur n'est fournie, le compte de service Compute Engine par défaut est utilisé.
- PROPERTY et PROPERTY_VALUE : facultatifs. Liste de paires propriété Spark=
value
séparées par une virgule. - LABEL et LABEL_VALUE : facultatifs. Liste de paires
label
=value
séparées par une virgule. - LOG_LEVEL : facultatif. Niveau de journalisation. Il peut s'agir de
ALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
ouWARN
. Par défaut :INFO
. -
KMS_KEY : facultatif. Clé Cloud Key Management Service à utiliser pour le chiffrement. Si aucune clé n'est spécifiée, les données sont chiffrées au repos à l'aide d'une clé Google-owned and Google-managed encryption key.
Exemple
projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Méthode HTTP et URL :
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/batches
Corps JSON de la requête :
{ "environmentConfig":{ "executionConfig":{ "subnetworkUri":"SUBNET", "kmsKey": "KMS_KEY", "serviceAccount": "SERVICE_ACCOUNT" } }, "labels": { "LABEL": "LABEL_VALUE" }, "runtimeConfig": { "version": "1.2", "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/connector/spark-avro.jar", "gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar" ] } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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" } }