Testes de jobs Spark com JUnit

A boa prática de desenvolvimento de software diz que devemos criar sempre testes para nossos códigos, e no universo de Big Data não deveria ser diferente. Neste artigo apresento como testar um código Spark com JUnit para jobs que rodam em batch (não-streaming).

»

O que eu vi Strata + Hadoop World NY 2015 - PARTE 1

Na última semana (29-01 de Outubro) estive na Strata em Nova Iorque, o evento de Big Data mais importante do ano, pela Globo.com. O evento foi bem interessante, foi importante a confirmação que a arquitetura usada por nós do time de Big Data da Globo.com é a mesma usada nos players mais respeitados e o futuro parece ser na direção de Deep Learning, tema discutido em várias apresentações. No primeiro dia foram os tutoriais, eu escolhi o Hardcore Data Science, na verdade era uma sala dedicada a apresentações somente do tema de Data Science que uniu profissionais do mercado (Facebook, Microsoft e Databricks) com pesquisadores das principais universidades americanas (MIT, Stanford e Berkeley), ficou claro nessa apresentação que o Spark MLlib é largamente usada, que há um tendência em cada vez usar mais algoritmos de redes neurais (Deep Learning), outro assunto que foi muito comentado foi a união de tempo real com Machine Learning (Spark Streaming e MLlib). »

Otimização dos parâmetros do Spark ALS (Collaborative Filtering) usando MOE

Esse tutorial é sobre otimização de parâmetros em modelos de machine learning. Para esse tutorial, a ferramenta utilizada é o MOE, Metric Optimization Engine, desenvolvido pelo Yelp que implementa o algoritmo de busca usando Gaussian Process. O algoritmo escolhido para ter os parâmetros otimizados é o Collaborative Filtering baseado na fatoração da matriz de preferências. De forma genérica, esse é um processo que pode ser facilmente adaptado para outros algoritmos e permite sistematizar a árdua tarefa de escolher os melhores parâmetros para um modelo. »

Configuração do Hadoop, HBase e Kafka na Máquina Local com Docker

Esse tutorial é sobre a criação de uma imagem do Docker com a configuração local do Hadoop, HBase e Kafka. Nesse procedimento, o Hadoop é configurado no modo pseudo-distribuído com cada serviço rodando em uma instância própria da JVM, mas todas na mesma máquina. O HBase e o Kafka também rodam em modo ‘distribuído’ compartilhando uma instância separada do ZooKeeper. Esse procedimento é muito útil para testar funcionalidades desses serviços e aprendizado, mas não é uma solução completa para uso em produção. »

Compilação do Spark 1.5 (com bugfix)

Aproveitando que foi feito o lançamento da versão 1.5.0 do Spark, esse tutorial é sobre a construção do pacote do Spark usando o branch atualizado. O branch foi criado para fazer a estabilização do código que deu origem ao primeiro release. Esse branch continua recebendo atualizações importantes que farão parte de releases bugfix no futuro. Com esse procedimento, é possível gerar o pacote com essas últimas atualizações (e até customizar com alterações próprias) antecipando correções que podem ajudar em produção. »

Compilação do Hadoop para CentOS6 / RHEL6 usando Docker

Esse tutorial é sobre a construção do pacote do Hadoop 2.7.1 para o CentOS6 / RHEL6 usando Docker. Esse procedimento é necessário para gerar as bibliotecas nativas compatíveis. O principal objetivo que motivou esse trabalho foi configurar o FairScheduler do YARN usando CGroups rodando no Red Hat Enterprise Linux 6 (RHEL6). O pacote Hadoop distribuído pela Apache tem executável binário que não é compatível com a Glibc que faz parte do CentOS6/RHEL6. »

BigData na Globo.com

A proposta desse artigo é fundamentar alguns conceitos de BigData e explorar a dinâmica de como tratar um grande volume de dados para extrair valor. A ideia é apresentar a solução de dados na Plataforma de BigData da Globo.com usada pelo Sistema de Recomendação e comentar a experiência do seu desenvolvimento. Esse artigo é uma atualização e expansão da palestra realizada no Rio BigData Meetup em 21 de Outubro de 2014. »

Como Spark usa a memória para obter performance superior ao MapReduce

Muitas Aplicações de Big Data executam múltiplas operações paralelas sobre o mesmo conjunto de dados. No tradicional modelo MapReduce, estes algoritmos exigem o encadeamento múltiplas operações de map e reduce o que torna o processo lento e dispendioso. O Spark é um framework de processamento paralelo que que visa atender aplicações que se beneficiam do reuso de um conjunto de dados, mantendo a escalabilidade e tolerança a falhas encontradas no modelo MapReduce. »