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/