Integrar consultas LLAP do Apache Spark e do Hive

Concluído

Na unidade anterior, examinamos duas maneiras de consultar dados estáticos armazenados em um cluster de Interactive Query: Data Analytics Studio e notebook Zeppelin. Porém, e se você quiser transmitir novos dados de imóveis para seus clusters usando o Spark e depois consultá-los usando o Hive? Como o Hive e o Spark têm dois metastores diferentes, eles precisam de um conector para fazer a ponte entre os dois – e o Apache HWC (Hive Warehouse Connector) é essa ponte. A biblioteca do Hive Warehouse Connector permite que você trabalhe mais facilmente com o Apache Spark e o Apache Hive ao dar suporte a tarefas como a movimentação de dados entre o Spark DataFrames e tabelas do hive, além de direcionar dados de streaming do Spark para tabelas do Hive. Não vamos configurar o conector em nosso cenário, mas é importante saber que a opção existe.

O Apache Spark tem uma API de streaming estruturado que fornece funcionalidades de streaming não disponíveis no Apache Hive. Do HDInsight 4.0 em diante, o Apache Spark 2.3.1 e o Apache Hive 3.1.0 têm metastores separados, o que dificulta a interoperabilidade. O Hive Warehouse Connector facilita o uso do Spark e do Hive juntos. A biblioteca Hive Warehouse Connector carrega dados de daemons do LLAP em executores do Spark em paralelo, tornando o processo mais eficiente e escalonável do que usar uma conexão JDBC padrão do Spark para o Hive.

Apache Hive Warehouse Connector

Algumas das operações com suporte do Hive Warehouse Connector são:

  • Descrever uma tabela
  • Como criar uma tabela para dados formatados em ORC (colunas de linhas otimizadas)
  • Selecionar dados do Hive e recuperar um dataframe
  • Gravar um dataframe no Hive em lote
  • Executar uma instrução update do Hive
  • Ler dados de tabela do Hive, transformá-los no Spark e gravá-los em uma nova tabela do Hive
  • Escrever um dataframe ou um fluxo do Spark para o Hive usando HiveStreaming

Depois que você tiver um cluster do Spark e um cluster da Interactive Query implantado, defina as configurações do cluster Spark em Ambari, que é uma ferramenta baseada na Web incluída em todos os clusters do HDInsight. Para abrir o Ambari, navegue até https://servername.azurehdinsight.net no navegador da Internet, em que servername é o nome do cluster da Interactive Query.

Então, para gravar dados de streaming do Spark nas tabelas, crie uma tabela do Hive e comece a gravar dados nela. Depois execute consultas em seus dados de streaming. Você pode usar qualquer uma das seguintes opções:

  • spark-shell
  • PySpark
  • spark-submit
  • Zeppelin
  • Livy