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 o Dataproc Batch no Console do Google Cloud. Clique em CRIAR para abrir a página Criar lote.
Selecione e preencha os seguintes campos da página para enviar uma carga de trabalho em lote do Spark que calcula o valor aproximado de pi:
- Informações do lote
- ID do lote: especifique um ID para sua carga de trabalho em lote. Esse valor precisa ter de 4 a 63 caracteres minúsculos. Os caracteres válidos são /[a-z][0-9]-/.
- Região: selecione uma região em que a carga de trabalho será executada.
- 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: 1000
- Configuração de execução: especifique 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 exibirá as sub-redes na rede selecionada ativadas para Acesso privado do Google.
- Propriedades: insira o valor da chave (nome da propriedade) de qualquer propriedade compatível do Spark que você queira usar na carga de trabalho em lote do Spark. Observação: ao contrário das propriedades de cluster do Dataproc no Compute Engine, as propriedades de carga de trabalho sem servidor do Dataproc para o Spark não incluem um prefixo "quoquo;spark:".
- Outras opções
- Configure a carga de trabalho em lote para usar um metastore externo autogerenciado.
- usar um servidor de histórico do Spark;
Clique em ENVIAR para executar a carga de trabalho em lote do Spark.
gcloud
Para enviar uma carga de trabalho em lote do Spark para calcular o valor
aproximado de pi
, execute o comando
gcloud dataproc lotes send spark
da CLI do gcloud localmente em uma janela de 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 na página
Configuração de rede do Dataproc sem servidor para o Spark. Se a sub-rede da rede
default
para a região especificada no comandogcloud dataproc batches submit
não estiver ativada para Acesso privado do Google, será necessário:- Ative a sub-rede padrão da rede 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. Você pode 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 de comando--1000
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 o ""-- ").--properties
: é possível adicionar a sinalização--properties
para inserir qualquer propriedade compatível do Spark que a carga de trabalho em lote do Spark usará.--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. É possível especificar somente o caminho/nome do bucket, por exemplo, "mybucketname". Exceção: se a carga de trabalho em lote fizer referência a arquivos na máquina local, a sinalização --deps-bucket será obrigatória. O Dataproc sem servidor para o Spark fará upload dos arquivos locais em uma pasta/dependencies
no bucket antes de executar a carga de trabalho em lote.--container-image
: é possível especificar uma imagem de contêiner personalizado 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
. É preciso hospedar seu contêiner personalizado no Container Registry.- 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 uma
Metastore Hive
gerenciada automaticamente usando uma configuração padrão do Spark:
gcloud beta 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 servidor de histórico permanente
- Criar um servidor permanente de histórico (PHS, na sigla em inglês) 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
- Envie 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 permanente de histórico (PHS, na sigla em inglês) 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 uma
Metastore Hive
gerenciada automaticamente usando uma configuração padrão do Spark:
REST e linha de comando
Nesta seção, mostramos como criar uma carga de trabalho em lote
para calcular o valor aproximado
de pi
usando a API
batches.create sem servidor do Dataproc.
Antes de usar qualquer um dos dados da solicitação, faça as seguintes substituições:
- project-id: ID do projeto do Google Cloud
- region: region 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 o region especificado não estiver ativada para Acesso privado do Google, será necessário seguir um destes procedimentos:- Ative a sub-rede padrão da rede para o region para o Acesso privado do Google.
- Use o campo
ExecutionConfig.subnetworkUri
para especificar uma sub-rede com o Acesso privado do Google ativado. Você pode executar o comandogcloud compute networks describe [NETWORK_NAME]
para listar os URIs das sub-redes em uma rede.
sparkBatch.jarFileUris
: o arquivo de exemplo jar é pré-instalado no ambiente de execução do Spark. O métodosparkBatch.args
é transmitido para a carga de trabalho do SparkPi e especifica 1.000 iterações da lógica de estimativa de pi.Spark properties
: use o campo RuntimeConfig.properties para inserir as propriedades Spark compatíveis que a carga de trabalho em lote do Spark usará.- Outras opções:
- Configure a carga de trabalho em lote para usar um metastore externo autogerenciado.
- 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" }