Conhecendo o Sparkling Water

The AI Academy
H2O.ai Brasil
Published in
5 min readMar 8, 2019

O Sparkling Water é um produto open-source da H2O.ai, que possibilita seus usuários combinarem a velocidade e escalabilidade dos algoritmos da plataforma H2O, com as funcionalidades e capacidades do Spark.

Neste post serão explorados os seguintes tópicos:

  1. Relembrando o H2O e o Spark.
  2. Introdução ao Sparkling Water.
  3. Exemplos de pipelines com e sem a utilização do Spark e Sparkling Water.
  4. Informações de Referências

1. Relembrando o H2O e o Spark

1.1 — H2O Plataforma Open-Source H2O.ai

Plataforma H2O

Plataforma de machine learning open source criada pela H2O.ai, que possui processamento distribuído e em memória, funcionalidades para análise preditiva, e que permite construir e produzir modelos ML. Contém modelos supervisionados e não supervisionados, como GLM e K-Means além de muitos outros, e uma interface web simples chamada Flow.

1.2 — Apache Spark

Spark

Apache Spark é um framework de código fonte aberto para computação distribuída, e muito utilizado para preparação de dados e big data.

Foi desenvolvido no AMPLab da Universidade da Califórnia e posteriormente repassado para a Apache Software Foundation que o mantém desde então. O Spark provê uma interface para programação de clusters com paralelismo e tolerância a falhas.

2. Introdução ao Sparkling Water

Sparkling Water — Integração H2O com Spark

A maioria dos algoritmos de Machine Learning são desenhados para execução apenas em uma máquina, e as bibliotecas disponíveis em Spark MLlib são de certa forma limitadas, não permitindo o desenvolvimento de aplicações de Machine Learning complexas.

O Sparkling Water permite a utilização dos melhores algoritmos em um ambiente poderoso ambiente computacional fornecido pelo Spark. Com a integração entre os dois ambientes open-source, é possível que os usuários efetuem consultas através do Spark SQL, e alimentem os resultados no H2O para criar um modelo e realizar predições.

2.1 Principais Funcionalidades

  • Algoritmos H2O — Acesso á algoritmos da plataforma H2O que foram criados para computação distribuída, com abordagens supervisionadas e não supervisionadas, incluindo Random Forest, GLM, GBM, XGBoost, GLRM, Word2Vec e outros.
  • Controle Computação — Permite controlar a computação a partir do Scala, R ou Python, e utilizar a interface web H2O Flow, fornecendo uma plataforma ideal de aprendizado de máquina para desenvolvedores de aplicativos.
  • Deploy — Fácil de implantar os modelos de scoring utilizando POJOs em qualquer ambiente, incluindo modelos muito grandes.
  • PySparkling — Intregração do Python com o Sparkling Water que permite os usuários iniciarem os serviços H2O no cluster Spark através uma API Python.

2.2 Exemplo de Cluster Sparkling Water

Cada cluster Spark é composto de um Driver JVM e um ou mais executores JVMs. Um contexto Spark é uma conexão com o cluster Spark, e cada aplicação Spark cria seu contexto. O contexto Spark se conecta ao gerenciador de cluster(Spark, Mesos ou Yarn), e aloca os executores para a aplicação. Então o Spark envia o código da aplicação para os executores e o contexto spark envia as tarefas para serem processadas.

O driver do Sparkling Water cria o contexto Spark que por sua vez cria o H2OContext, que é utilizado para iniciar os serviços do H2O nos executores Spark. Um contexto H2O é responsável pela conexão com cluster H2O, e também facilita a comunicação entre o H2O e o Spark. Qunado o cluster H2O inicia, ele possui a mesma topologia do cluster Spark, e os nodes H2O compartilhas as mesmas JVMs.

Cluster Sparkling Water

Para aproveitar os algoritmos do H2O, os dados no cluster do Spark armazenados como um RDD, precisam ser convertidos em um H2OFrame (quadro de dados distribuídos do H2O). Isso requer uma cópia de dados devido à diferença no layout de dados no Spark (blocos / linhas) e no H2O (colunas).

Como os dados são armazenados no H2O em um formato altamente compactado, a sobrecarga de fazer uma cópia de dados é baixa. Ao converter um H2OFrame em RDD, o Sparkling Water cria um wrapper em torno do H2OFrame para fornecer uma API semelhante a RDD. Neste Caso, o

Nesse caso, nenhum dado é duplicado e os dados são exibidos diretamente do H2OFrame. Como o H2O é executado nas mesmas JVMs que os executores do Spark, mover dados do Spark para o H2O, ou vice-versa requer uma simples chamada de processo em memória.

Cluster Sparkling Water

3. Exemplos de workflow de machine learning

3.1 — Workflow sem a utilização de Spark

3.2 — Workflow com a utilização de Spark e Sparkling Water

WorkFlow Com Sparkling Water e Spark

4 . Referências

  • Download do Sparkling Water: — Através do site da H2O.ai é possível efetuar o download.
  • Documentação: As documentações estão disponíveis de acordo com as versões 2.1, 2.2, ou 2.3. É recomendada a leitura para iniciar com o Sparkling Water.
  • Utilização com Hadoop e HDFS: Também podem ser acessadas (2.1, 2.2, or 2.3).
  • Tutoriais — Disponíveis no GitHub.

Conclusão

O Sparkling Water é uma ferramenta poderosa para acelerar o desenvolvimento e implantação de algoritmos de machine learning em cenários e use cases que necessitam de alto poder computacional.

Veja Também:

Até o próximo post !!!

--

--

The AI Academy
H2O.ai Brasil

We provide AI Strategy Consulting and Learning Services to help small and large enterprises become AI-first companies.