De que se trata o artigo:

Neste artigo apresentaremos uma visão conceitual sobre o que é big data, onde se originou, seus motivadores e principais usuários. Demonstraremos também modelos de programação como o MapReduce, assim como ferramentas Java para lidar com big data. E abordaremos, principalmente, ferramentas como o Hadoop, que trazem consigo um modelo robusto de programação distribuída paralelizada para grandes conjuntos de dados.

Em que situação o tema é útil:

O surgimento de ferramentas e cenários para processar big data, principalmente relacionados à tecnologia Java, faz com que oportunidades de transformar grandes volumes de dados de empresas em informações ricas para decisões sejam cada vez mais frequentes e possíveis de realizar. Para estas empresas, a diferença para tirar vantagem nesta área em relação à concorrência, pode estar na capacidade e criatividade de conseguir explorar eficientemente o big data, pois a ferramenta existe, é real e open-source.

Resumo DevMan:

Entender o conceito de big data ajudará a compreender melhor qual é o papel desempenhado por ferramentas como o Hadoop. Ao longo do tempo, será mais comum o surgimento deste tipo de desafio em empresas que desejam explorar seu big data. Assim, neste artigo, desvendaremos de maneira prática, com o objetivo de buscar o entendimento, de que forma podemos processar e explorar um grande conjunto de dados através do uso do MapReduce e ferramentas Java (Hadoop). Isto nos possibilita construir aplicações big data em Java.

Com o constante crescimento e facilidade de acesso à tecnologia, cada vez mais e mais volumes de dados são produzidos. Diariamente, são gerados petabytes de informações envolvendo operações comerciais e financeiras, e mesmo no ambiente doméstico é comum encontrar usuários que possuem discos de backup com capacidade de 1 terabyte ou mais.

E com este crescente acesso à tecnologia, empresas como Facebook, Yahoo! e Google culminaram coletando dados em uma escala sem precedentes, números além do comum. Eles foram os primeiros a coletar toneladas de dados oriundos de milhões de usuários. Arduamente, perceberam que os sistemas convencionais de armazenamento e processamento de dados não atenderiam a suas demandas. Deste modo, nos anos 2000, colocando seus melhores pensadores para criar, foram capazes de desenvolver novas técnicas como MapReduce, BigTable e o Google File System, para lidar com tais volumes e processamento. Assim, após um período utilizando estas tecnologias de forma privada, por volta do ano 2005, Facebook, Yahoo! e Google tomaram a iniciativa de compartilhá-las através da publicação de “white papers”, descrevendo suas tecnologias para soluções que requerem o manuseio de big data.

O termo big data é utilizado para referenciar conjuntos de dados de grande volume, o qual é praticamente inviável o manuseio com ferramentas e técnicas convencionais. Lidar com um grande volume de dados acarreta dificuldades no processamento, tais como: indexação, análise de padrões e até mesmo consultas.

Estes desafios de operações com big data estão presentes em grandes sites como a Amazon, que gera um enorme volume de dados. A rede social Facebook lida com cerca de 40 bilhões de fotos geradas por seus usuários. Atualmente, mais de 350 milhões de usuários ativos acessam a rede social via dispositivos móveis, e são realizados em média 250 milhões de uploads de fotos por dia. Em março de 2008, a rede social Facebook coletava diariamente 200 GB de dados; atualmente, coleta 15 terabytes. Imagine apenas o simples fato de gerar um registro de log para cada uma destas operações, qual seria a quantidade de registros que atingiríamos no período de 365 dias? O projeto Grande Colisor de Hádrons (LHC – Large Hadron Collider), o maior acelerador de partículas do mundo, mantido pela CERN, por exemplo, irá produzir 15 petabytes de dados anualmente.

Outro exemplo de desafio com dados: o recurso de pesquisas Search Assist da Yahoo!, fornece sugestões em tempo real conforme o usuário digita o que deseja pesquisar. Estas sugestões são criadas analisando anos de registros de dados das pesquisas e termos utilizados. Para uma empresa do porte da Yahoo!, este registro de dados resulta em terabytes de arquivos de log em apenas um dia, e centenas de terabytes dentro do período de um ano. Para a Yahoo!, antes de o Hadoop ser utilizado, criar a base de dados para o Search Assist levava 26 dias. Agora, com o Hadoop, leva 20 minutos.

É para lidar com essa constante e crescente necessidade de trabalhar com volumes intensivos de dados que surgiu a definição de big data.

Companhias das mais variadas indústrias, por consequência da crescente capacidade de coletar e processar mais e mais informações, se encontram com problemas para lidar com big data, e anseiam por soluções.

Na busca de oportunidades para prover soluções para este mercado, o big data gera um impacto que faz com que grandes players da indústria, tais como Oracle, IBM, Microsoft e SAP, invistam cada vez mais, na ordem de bilhões de dólares, para se especializarem no gerenciamento e análise de dados nestas proporções.

Esta tendência traz benefícios para vários campos e atividades que necessitam analisar informações de grandes volumes de dados, como: astronomia, biologia, pesquisas científicas, pesquisas militares, meteorologia, imagens de satélite, redes sociais, pesquisa em internet, logs web, transações bancárias, mercado financeiro, e-commerce, etc. Estar apto a processar analiticamente esse enorme conjunto de dados produzido pode gerar benefícios valiosos para instituições financeiras e não-financeiras.

Junto com este termo de categorização (big data), vêm surgindo técnicas e ferramentas poderosas que se tornaram alternativas úteis para tratar esses volumes de dados. O que possibilita prover informações que antes não eram aproveitadas em visões analíticas, por serem tão complicadas e custosas de serem obtidas. Visões que podem apresentar informações estratégicas, que são parte importante nas tomadas de decisões. Dentro destes grandes volumes de dados podem estar escondidos padrões de informações valiosos, antes inacessíveis devido ao grande esforço para extraí-los.

Hoje, com o custo mais baixo do hardware e processamento em arquitetura cloud disponível no mercado, a opção de análise de big data é acessível também para as médias e pequenas corporações. Para estabelecer um data warehouse, é necessário adquirir ferramentas com o preço de alguns milhares de dólares, adquirir o serviço para construção da solução por mais alguns milhares de dólares, depois aguardar algumas dezenas de meses. E durante esses meses, esperar que o investimento (tempo e dinheiro) gasto se justifique, que promova visões que atenderão suas necessidades e lhe fornecerão vantagens sobre os competidores. Por isso, empresas que precisavam processar grandes volumes de dados puderam assim realizar, com o advento de ecossistemas como Hadoop e HBase, soluções para garimpar bilhões de dados de forma mais ágil, e ainda com custo mais acessível. Obviamente, as soluções corporativas de alto-custo de data warehouse não irão desaparecer, o que está acontecendo é que, agora, um data warehouse pode não ser mais a única opção.

Além disso, eles podem ser opções complementares e não excludentes, pois dentro do ciclo de vida dos dados, as duas soluções podem participar dividindo as responsabilidades. Mas ainda assim, há uma intersecção quanto ao armazenamento e análise, onde ambas as soluções podem atuar. Podemos observar uma ilustração sobre isso na Figura 1.

Figura 1. Áreas de atuação do Hadoop e do data warehouse dentro do ciclo de vida dos dados.

Lembrando que são cenários distintos armazenar big data e realizar alguma coisa com big data, como a execução de processamentos analíticos. Portanto, uma coisa é possuir big data, outra coisa é fazer algo útil com ele.

Na decisão de transformar a sua grande massa de dados em informações úteis para os objetivos da instituição, é executada uma abordagem que analisa a natureza dos dados e das plataformas de software disponíveis para explorá-los. Nesta abordagem, o big data é comumente caracterizado sob três diferentes aspectos: volume, velocidade e variedade. Provavelmente, na perspectiva do dono dos dados, será necessário lidar com cada um destes aspectos em um grau ou outro para orientar a solução a ser criada.

Volume

É sempre muito mais vantajoso poder processar o maior volume de dados possível para a obtenção de respostas mais precisas. Por exemplo, se for viável analisar a relação da influência de compra, entre pares de compradores de hábitos diferentes, de um site e-commerce na ordem de trilhões de registros, será muito mais eficiente do que analisar alguns milhares de registros. E para processar este grande volume de registros selecionados, possuir um bom modelo de análise das informações é uma parte importante, mas estar apto a processar um volume grande de dados trará mais confiança e precisão ao resultado final da equação devido à maior abrangência diante das informações armazenadas.

Quando lidamos com grandes volumes de dados, maiores do que os convencionais softwares e bancos de dados relacionais podem manusear, temos algumas opções de ferramentas, como: data warehouse, arquiteturas MPP (Massively Parallel Processing), banco de dados como o Greenplum ou soluções como o Apache Hadoop. Porém, adotar soluções de data warehouse envolve o tratamento de estruturas (schemas) pré-definidas, enquanto que com o Apache Hadoop não temos que impor nenhuma condição na estrutura dos dados que serão processados.

Velocidade

Possuir uma informação precisa no momento errado não é uma grande vantagem, porém possuir uma informação precisa no momento certo é, de fato, a vantagem que o dono dos dados procura. Por exemplo, não existe muita vantagem em possuir informações do hábito de compra de casais com média de idade de 30 anos durante o Natal, e que possuam filho com idade menor de 12 meses, somente na véspera do evento. E há casos, que para serem úteis, prover as informações em tempo real é uma grande vantagem, quando não uma necessidade.

Em busca desta vantagem, ou mesmo necessidade, companhias especializadas em operações financeiras anseiam por rápida movimentação de informações para seu próprio benefício. Hoje em dia, o tráfego de dados que flui entre clientes e servidores cresceu exponencialmente, pois estamos munidos de dispositivos que permitem acesso mais conveniente e constante a redes, como tablets e smartphones. Além disso, informações como geolocalização e imagens são também providas pelos usuários. Aqueles que possuem a capacidade de utilizar rapidamente essa grande quantidade de informações, podem, por exemplo, recomendar produtos e serviços que tenham alguma relação com o contexto do usuário no momento de uma pesquisa em um site na internet, e assim ganhar em competitividade.

A importância da velocidade está no grau de rapidez em que fluxo de informações é realizado: desde a entrada dos dados, até o ponto onde estes se tornam úteis e são utilizados na tomada de decisões.

Um comercial de uma grande empresa de tecnologia diz: “você não atravessaria a rua se tudo que você tivesse fosse um snapshot do tráfego de 5 segundos atrás, atravessaria?”. Neste contexto, não haveria tempo para esperar relatórios serem gerados ou mesmo jobs do Hadoop se completarem. Para casos como este é que a indústria está estabelecendo técnicas como ...

Quer ler esse conteúdo completo? Tenha acesso completo