Plantilla de Hive a Cloud Storage
Usa la plantilla Dataproc Serverless Hive a Cloud Storage para extraer datos de Hive a Cloud Storage.
Usa la plantilla
Ejecuta la plantilla con gcloud CLI o la API de Dataproc.
gcloud
Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- PROJECT_ID: Obligatorio. El ID del proyecto de Google Cloud que aparece en la configuración de IAM
- REGION: Obligatorio. Región de Compute Engine.
- TEMPLATE_VERSION: Obligatorio. Especifica
latest
para la versión más reciente de la plantilla o la fecha de una versión específica, por ejemplo,2023-03-17_v0.1.0-beta
(visita gs://dataproc-templates-binaries o ejecutagsutil ls gs://dataproc-templates-binaries
para enumerar las versiones de plantilla disponibles). - SUBNET: Opcional Si no se especifica una subred, se selecciona la subred en la REGION especificada en la red
default
.Ejemplo:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
- HOST y PORT: Obligatorios.
Nombre de host o dirección IP y puerto del host de base de datos de Hive de origen
Ejemplo:
10.0.0.33
- TABLE: Obligatorio. Nombre de la tabla de entrada de Hive.
- DATABASE: Obligatorio. Nombre de la base de datos de entrada de Hive.
- CLOUD_STORAGE_OUTPUT_PATH: Obligatorio. Ruta de acceso de Cloud Storage donde se almacenará el resultado.
Ejemplo:
gs://dataproc-templates/hive_to_cloud_storage_output
- FORMAT: Opcional Formato de datos de salida Opciones:
avro
,parquet
,csv
ojson
. Valor predeterminado:avro
. Nota: Si esavro
, debes agregarfile:///usr/lib/spark/external/spark-avro.jar
a la marcajars
de gcloud CLI o al campo de la API.Ejemplo (el prefijo
file://
hace referencia a un archivo jar sin servidores de Dataproc):--jars=file:///usr/lib/spark/external/spark-avro.jar,
[, ... otros archivos jar] - HIVE_PARTITION_COLUMN: Opcional Columna para particionar los datos de Hive.
- MODE: Obligatorio. Modo de escritura para la salida de Cloud Storage.
Opciones:
append
,overwrite
,ignore
oerrorifexists
. - SERVICE_ACCOUNT: Opcional Si no se proporciona, se usa la cuenta de servicio predeterminada de Compute Engine.
- PROPERTY y PROPERTY_VALUE: Opcionales. Lista separada por comas de pares de propiedad de Spark=
value
. - LABEL y LABEL_VALUE: Opcionales. Lista separada por comas de pares
label
=value
. - LOG_LEVEL: Opcional Nivel de registro. Puede ser
ALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
oWARN
. Valor predeterminado:INFO
. -
KMS_KEY: Opcional La clave de Cloud Key Management Service que se usará en la encriptación. Si no se especifica una clave, los datos se encriptan en reposo mediante una clave administrada por Google y propiedad de Google.
Ejemplo:
projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Ejecuta el siguiente comando:
Linux, macOS o 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
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Obligatorio. El ID del proyecto de Google Cloud que aparece en la configuración de IAM
- REGION: Obligatorio. Región de Compute Engine.
- TEMPLATE_VERSION: Obligatorio. Especifica
latest
para la versión más reciente de la plantilla o la fecha de una versión específica, por ejemplo,2023-03-17_v0.1.0-beta
(visita gs://dataproc-templates-binaries o ejecutagsutil ls gs://dataproc-templates-binaries
para enumerar las versiones de plantilla disponibles). - SUBNET: Opcional Si no se especifica una subred, se selecciona la subred en la REGION especificada en la red
default
.Ejemplo:
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
- HOST y PORT: Obligatorios.
Nombre de host o dirección IP y puerto del host de base de datos de Hive de origen
Ejemplo:
10.0.0.33
- TABLE: Obligatorio. Nombre de la tabla de entrada de Hive.
- DATABASE: Obligatorio. Nombre de la base de datos de entrada de Hive.
- CLOUD_STORAGE_OUTPUT_PATH: Obligatorio. Ruta de acceso de Cloud Storage donde se almacenará el resultado.
Ejemplo:
gs://dataproc-templates/hive_to_cloud_storage_output
- FORMAT: Opcional Formato de datos de salida Opciones:
avro
,parquet
,csv
ojson
. Valor predeterminado:avro
. Nota: Si esavro
, debes agregarfile:///usr/lib/spark/external/spark-avro.jar
a la marcajars
de gcloud CLI o al campo de la API.Ejemplo (el prefijo
file://
hace referencia a un archivo jar sin servidores de Dataproc):--jars=file:///usr/lib/spark/external/spark-avro.jar,
[, ... otros archivos jar] - HIVE_PARTITION_COLUMN: Opcional Columna para particionar los datos de Hive.
- MODE: Obligatorio. Modo de escritura para la salida de Cloud Storage.
Opciones:
append
,overwrite
,ignore
oerrorifexists
. - SERVICE_ACCOUNT: Opcional Si no se proporciona, se usa la cuenta de servicio predeterminada de Compute Engine.
- PROPERTY y PROPERTY_VALUE: Opcionales. Lista separada por comas de pares de propiedad de Spark=
value
. - LABEL y LABEL_VALUE: Opcionales. Lista separada por comas de pares
label
=value
. - LOG_LEVEL: Opcional Nivel de registro. Puede ser
ALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
oWARN
. Valor predeterminado:INFO
. -
KMS_KEY: Opcional La clave de Cloud Key Management Service que se usará en la encriptación. Si no se especifica una clave, los datos se encriptan en reposo mediante una clave administrada por Google y propiedad de Google.
Ejemplo:
projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Método HTTP y URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/batches
Cuerpo JSON de la solicitud:
{ "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" ] } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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" } }