Como configurar o SQL Editor para Apache Spark SQL no HUE pelo Dataproc

Nesta postagem, falaremos como configurar o SQL Editor para Apache Spark SQL no HUE usando o Dataproc.

O que é Cloud Dataproc?

É a plataforma de big data totalmente gerenciado, para processar grandes quantidades de dados com rapidez, de forma econômica e em grande escala. Usando ferramentas de código aberto como o Apache Spark, o Apache Hive, o Apache Hadoop e o Apache Pig combinadas à escalabilidade dinâmica do Compute Engine e ao armazenamento escalável do Cloud Storage, o Dataproc oferece às equipes analíticas os mecanismos e a elasticidade para executar análises na escala de petabytes por uma fração do custo dos clusters locais tradicional, além de ser facilmente incorporado a outros serviços do Google Cloud Platform (GCP).

O que é HUE?

É um front-end gráfico que permite ao usuário acessar os componentes do hadoop, por exemplo o HUE permite executar comandos do apache Hive.

HUE significa Hadoop User Experience.

Passo a Passo

1. O primeiro passo a fazer é o login em sua conta do GCP, para este tutorial você vai precisar de uma conta que possua um projeto.

2. Vá até a barra superior e clique no ícone do Cloud Shell, igual a imagem abaixo.

3. Agora temos que preparar as variáveis de ambiente que usaremos nos outros passos:

a) Para definir a variável de região usaremos o código abaixo:

export REGION=us-central1

b) Para definir a variável de Zona usaremos o código abaixo:

export ZONE=us-central1-a

4. Nesse passo vamos definir o projeto a ser usado dentro do cloud shell, no campo [PROJECT_ID], insira o id do seu projeto:

gcloud config set project [PROJECT_ID]

5. Nesse passo vamos definir a Zona a ser usada dentro do cloud shell com base na variável que definimos antes:

gcloud config set compute/zone $ZONE

6. Nesse passo vamos definir a Região a ser usada dentro do cloud shell com base na variável que definimos antes:

gcloud config set compute/region $REGION

7. Após isso vamos definir a variável PROJECT com o id do projeto:

export PROJECT=$(gcloud info --format='value(config.project)')

8. Com o código abaixo a api do dataproc será habilitada, caso já esteja pode desconsiderar:

gcloud services enable dataproc.googleapis.com sqladmin.googleapis.com

9. Caso não exista, crie um cluster do dataproc com o comando abaixo:

gcloud dataproc clusters create meu-cluster \
 --image-version 1.3 \
 --region $REGION \
 --subnet default \
 --master-machine-type n1-standard-1 \
 --master-boot-disk-size 500 \
 --num-workers 2 \
 --worker-machine-type n1-standard-1 \
 --worker-boot-disk-size 500 \
 --initialization-actions gs://goog-dataproc-initialization-actions-${REGION}/hue/hue.sh

Observações:

A propriedade “subnet” faz referência a sub-rede que usaremos no cluster.

A propriedade “master-machine-type” permite selecionar o tipo de máquina a ser usado pelo master.

A propriedade “worker-machine-type” permite selecionar o tipo de máquina a ser usado pelos workes.

10. Crie uma regra de Firewall habilitando as portas 22, 8888 e 8998:

gcloud compute --project=$PROJECT_ID firewall-rules create allow-hue --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22,tcp:8888,tcp:8998 --source-ranges=0.0.0.0/0

11. Copie o IP externo da maquina Master e acrescente a porta 8888, acesse pelo navegador, defina uma senha:

12. Vá ate o menu do Compute Engine, seleciona a maquina Master de seu cluster e execute SSH:

13. Execute os comandos abaixo:

cd /
sudo find -name hue.ini
nano <diretório retornado pelo comando anterior>/hue.ini

14. Acrescente/modifique o trecho abaixo:

[spark]
# The Livy Server URL.
livy_server_url=http://<IP_INTERNO_DA_MAQUINA>:8998

15. Acrescente/modifique o interpretador de SparkSQL no arquivo:

[[interpreters]]
[[[sparksql]]]
name=Spark SQL
interface=livy

16. Reinicie o Hue e acesse o site novamente, nas opções de Editor aparecerá o Editor SQL para Spark SQL:

Referências

  • SQL Editor for Apache Spark SQL with Livy

https://gethue.com/blog/quick-task-sql-editor-for-apache-spark-sql-with-livy/