Instalação
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.
-
Ative a API Dataproc.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.
-
Ative a API Dataproc.
Enviar uma carga de trabalho em lote do Spark
Console
Acesse os lotes do Dataproc no console do Google Cloud. Clique em CRIAR para abrir a página Criar lote.
Selecione e preencha os seguintes campos na página para enviar uma carga de trabalho em lote do Spark que calcula o valor aproximado de pi:
- Informações em lote
- ID do lote: especifique um ID para a carga de trabalho em lote. Esse valor precisa ter de 4 a 63 caracteres em letras minúsculas. Os caracteres válidos são /[a-z][0-9]-/.
- Região: selecione uma região para executar a carga de trabalho.
- Contêiner
- Tipo de lote: Spark
- Classe principal:
org.apache.spark.examples.SparkPi
- Arquivos jar:
file:///usr/lib/spark/examples/jars/spark-examples.jar
- Argumentos: 1.000
- Configuração de execução É possível especificar uma conta de serviço a ser usada para executar sua carga de trabalho. Se você não especificar uma conta de serviço, a carga de trabalho será executada na conta de serviço padrão do Compute Engine.
- Configuração de rede: a sub-rede VPC que executa cargas de trabalho do Spark sem servidor precisa atender aos requisitos listados em Configuração de rede do Dataproc sem servidor para o Spark. A lista de sub-redes exibe as sub-redes na rede selecionada que estão ativadas para o Acesso privado do Google.
- Propriedades: insira o valor da chave (nome da propriedade) de qualquer propriedade do Spark com suporte que você queira que a carga de trabalho em lote do Spark use. Observação: diferentemente das propriedades de cluster do Dataproc em Compute Engine, as propriedades de carga de trabalho sem servidor do Dataproc para Spark não incluem um prefixo "spark:".
- Outras opções
- Configure a carga de trabalho em lote para usar um Metastore do Hive autogerenciado.
- Usar um servidor de histórico do Spark
Clique em ENVIAR para executar a carga de trabalho em lote do Spark.
gcloud CLI
Para enviar uma carga de trabalho em lote do Spark para calcular o valor aproximado de pi
, execute o comando gcloud dataproc batch submit spark (em inglês) da CLI gcloud localmente em uma janela do terminal ou no 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
Observações:
- Sub-rede: a sub-rede VPC que executa cargas de trabalho do Spark sem servidor precisa atender aos requisitos listados em Configuração de rede do Dataproc sem servidor para o Spark. Se a sub-rede da rede
default
da região especificada no comandogcloud dataproc batches submit
não estiver ativada para o Acesso privado do Google, siga um destes procedimentos:- Ativar a sub-rede da rede padrão para a região do Acesso privado do Google ou
- Use a sinalização
--subnet=[SUBNET_URI]
no comando para especificar uma sub-rede com o Acesso privado do Google ativado. É possível executar o comandogcloud compute networks describe [NETWORK_NAME]
para listar os URIs das sub-redes em uma rede.
--jars
: o arquivo jar de exemplo é pré-instalado, e o argumento do comando1000
transmitido para a carga de trabalho do SparkPi especifica 1.000 iterações da lógica de estimativa de pi. Os argumentos de entrada da carga de trabalho são incluídos após "-- ").--properties
: é possível adicionar a sinalização--properties
para inserir qualquer propriedade Spark compatível que a carga de trabalho em lote do Spark use.--deps-bucket
: é possível adicionar essa sinalização para especificar um bucket do Cloud Storage em que o Dataproc Serverless for Spark fará upload das dependências da carga de trabalho. O prefixo de URIgs://
do bucket não é obrigatório. Só é possível especificar o caminho/nome do bucket, por exemplo, "mybucketname". Exceção: se a carga de trabalho em lote referenciar arquivos na máquina local, a sinalização --deps-bucket será necessária. O Dataproc Serverless para Spark fará upload dos arquivos locais em uma pasta/dependencies
no bucket antes de executar a carga de trabalho em lote.- Outras opções:
- É possível adicionar outras sinalizações de comando opcionais. Por exemplo,
o comando a seguir configura a carga de trabalho em lote para usar um
Metastore do Hive
autogerenciado externo com uma configuração Spark padrão:
gcloud dataproc batches submit \ --properties=spark.sql.catalogImplementation=hive,spark.hive.metastore.uris=METASTORE_URI,spark.hive.metastore.warehouse.dir=WAREHOUSE_DIR> \ other args ...
Consultegcloud dataproc batches submit
para ver as sinalizações de comando compatíveis. - Usar um Persistent History Server.
- Criar um servidor do Persistent History (PHS) em um cluster do Dataproc de
nó único. Observação: o bucket-name do Cloud Storage precisa existir.
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
- Enviar uma carga de trabalho em lote, especificando o servidor do histórico permanente em execução.
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
- Criar um servidor do Persistent History (PHS) em um cluster do Dataproc de
nó único. Observação: o bucket-name do Cloud Storage precisa existir.
- É possível adicionar outras sinalizações de comando opcionais. Por exemplo,
o comando a seguir configura a carga de trabalho em lote para usar um
Metastore do Hive
autogerenciado externo com uma configuração Spark padrão:
REST
Nesta seção, mostramos como criar uma carga de trabalho em lote
para calcular o valor aproximado
de pi
usando a API Dataproc sem servidor do
batches.create.
Antes de usar os dados da solicitação, faça as substituições a seguir:
- project-id: ID do projeto do Google Cloud
- region: região Observações:
- Custom-container-image: especifique a imagem do contêiner personalizada usando o formato de nomenclatura de imagem do Docker:
{hostname}/{project-id}/{image}:{tag}
. Por exemplo, "gcr.io/my-project-id/my-image:1.0.1". Observação:é preciso hospedar seu contêiner personalizado no Container Registry. - Sub-rede:se a sub-rede da rede
default
para a region especificada não estiver ativada para Acesso privado do Google, siga um destes procedimentos:- Ativar a sub-rede da rede padrão para o region para o Acesso privado do Google, ou
- Use o campo
ExecutionConfig.subnetworkUri
para especificar uma sub-rede com o Acesso privado do Google ativado. É possível executar o comandogcloud compute networks describe [NETWORK_NAME]
para listar os URIs das sub-redes em uma rede.
sparkBatch.jarFileUris
: o arquivo jar de exemplo é pré-instalado no ambiente de execução do Spark. O "1.000"sparkBatch.args
é transmitido para a carga de trabalho do SparkPi e especifica 1.000 iterações da lógica de estimativa pi.Spark properties
: é possível usar o campo RuntimeConfig.properties para inserir qualquer propriedade do Spark compatível que a carga de trabalho em lote do Spark use.- Outras opções:
- Configure a carga de trabalho em lote para usar um Metastore externo completizado pelo Hive externo.
- Usar um servidor de histórico do Spark
Método HTTP e URL:
POST https://dataproc.googleapis.com/v1/projects/project-id/locations/region/batches
Corpo JSON da solicitação:
{ "sparkBatch":{ "args":[ "1000" ], "jarFileUris":[ "file:///usr/lib/spark/examples/jars/spark-examples.jar" ], "mainClass":"org.apache.spark.examples.SparkPi" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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" }
Estime os custos da carga de trabalho.
O Dataproc sem servidor para cargas de trabalho do Spark consomem dados de unidade de computação (DCU, na sigla em inglês) e recursos de armazenamento de embaralhamento. Consulte Preços sem servidor do Dataproc para um exemplo que gera UsageMetrics para estimar o consumo e os custos do recurso da carga de trabalho.