Hadoop

O que é e qual sua importância?

Hadoop é uma estrutura de software open-source para armazenar dados e executar aplicações em clusters de hardwares comuns. Ele fornece armazenamento massivo para qualquer tipo de dado, grande poder de processamento e a capacidade de lidar quase ilimitadamente com tarefas e trabalhos ocorrendo ao mesmo tempo.

 

História do Hadoop

Conforme a World Wide Web crescia no final dos anos 1990 e início dos anos 2000, mecanismos de busca e indexes foram criados para ajudar a localizar informações relevantes em meio a conteúdos textuais. No começo, eram os próprios seres humanos quem devolviam os resultados de buscas; mas, à medida que a internet cresceu de dezenas para milhares de páginas, a automação se tornou necessária. Rastreadores web foram criados, muitos como projetos de pesquisa liderados por universidades, e startups de mecanismos de busca decolaram (Yahoo, AltaVista etc).

hadoop-timeline-infographic

Um desses projetos era um mecanismo de busca open-source chamado Nutch – idealizado por Doug Cutting e Mike Cafarella. Eles queriam retornar resultados mais rapidamente ao distribuir dados e cálculos entre computadores distintos para que diferentes tarefas pudessem ser realizadas simultaneamente. Durante esse tempo, outro mecanismo de busca chamado Google estava em construção. Ele era baseado no mesmo conceito – armazenar e processar dados de forma distribuída e automatizada para que resultados de pesquisa relevantes pudessem ser encontrados rapidamente.

Em 2006, Cutting foi contratado pelo Yahoo e levou com ele o projeto Nutch, bem como ideias baseadas nos trabalhos iniciais do Google de automatizar o armazenamento e o processamento de dados de modo distribuído. O projeto Nutch foi dividido – o rastreador web permaneceu como Nutch e a parte de processamento e computação distribuída tornou-se o Hadoop (nome do elefantinho de brinquedo do filho do Cutting). Em 2008, o Yahoo lançou o Hadoop como um projeto open-source. Hoje, a estrutura e o ecossistema de tecnologias Hadoop são gerenciados e mantidos pela organização sem fins lucrativos Apache Software Foundation (ASF), uma comunidade global de desenvolvedores de software e colaboradores.

 


Qual é a importância do Hadoop?

  • Capacidade de armazenar e processar grandes quantidades de qualquer tipo de dado, e rapidamente. Com os volumes e tipos de dados disponíveis crescendo constantemente, graças, principalmente, às mídias sociais e à Internet das Coisas (IoT), isso é uma consideração importante.
  • Poder computacional. O modelo computacional distribuído do Hadoop processa big data rapidamente. Quanto maior a quantidade de nós computacionais você usar, mais poder de processamento você terá.
  • Tolerância a falhas. O processamento de dados e aplicações é protegido contra falhas de hardware. Se um nó cai, os trabalhos são automaticamente redirecionados para outros nós para garantir que a computação distribuída não falhe. Múltiplas cópias de todos os dados são armazenadas automaticamente.
  • Flexibilidade. Ao contrário dos bancos de dados relacionais tradicionais, você não precisa pré-processar os dados antes de armazená-los. Você pode armazenar seus dados o quanto quiser e decidir como usá-los depois. Isso inclui dados não-estruturados como texto, imagens e vídeos.
  • Custo baixo. A estrutura open-source é gratuita e utiliza hardwares comuns para armazenar grandes quantidades de dados.
  • Escalabilidade. Você pode aumentar facilmente o seu sistema para lidar com mais dados ao adicionar nós. Não é preciso muita administração.

Quais são os desafios em usar o Hadoop?

A programação de MapReduce não é uma boa solução para todos os problemas. Ela é ótima para pedidos de informação simples e problemas que podem ser divididos entre unidades independentes, mas não é eficiente para tarefas de inteligência analítica iterativas e interativas. MapReduce é focado em arquivos. Como os nós não se comunicam, exceto através de misturas e classificações, algoritmos iterativos precisam de diversas fases de map-shuffle e sort-reduce para se completarem. Isso cria muitos arquivos entre as fases de MapReduce e não é eficiente para computação analítica avançada.

Há uma lacuna de talento amplamente notada. Pode ser difícil encontrar programadores iniciantes que tenham habilidades suficientes em Java para serem produtivos com MapReduce. Esse é um dos motivos pelos quais os fornecedores estão correndo para incluir tecnologia relacional (SQL) em Hadoop. É muito mais fácil encontrar programadores com habilidades em SQL do que em MapReduce. E a administração do Hadoop parece ser parte arte e parte ciência, requerendo pouco conhecimento técnico em operação de sistemas, hardware e configurações centrais de Hadoop.

Segurança dos dados. Outro desafio gira em torno dos problemas de segurança de dados fragmentados, embora novas ferramentas e tecnologias estejam surgindo. O protocolo de autenticação Kerberos é um grande passo para tornar seguros os ambientes do Hadoop.

Gestão e governança de dados completos. O Hadoop não possui ferramentas completas e fáceis de usar para gerenciamento de dados, data cleansing, governança e metadados. Especialmente, faltam também ferramentas para qualidade e padronização de dados.



Curiosidade: “Hadoop” era o nome de um elefantinho amarelo de brinquedo do filho de um dos inventores.

Hadoop no mundo de hoje

A promessa da alta disponibilidade de poderes de armazenamento e processamento a custo baixo levou muitas organizações a adotarem o Hadoop. Entretanto, muitas delas fazem uma pergunta essencial: como o Hadoop pode nos ajudar com big data e inteligência analítica? Saiba mais aqui!

tdwi logo - Advancing all things data


A big read: Hadoop for the enterprise

This comprehensive 40-page Best Practices Report from TDWI explains how Hadoop and its implementations are evolving to enable enterprise deployments that go beyond niche applications.

Download the TDWI report

Report icon


Ugly duckling turned swan

That’s how the Bloor Group introduces the Hadoop ecosystem in this report that explores the evolution of and deployment options for Hadoop. It includes a detailed history and tips on how to choose a distribution for your needs.

Download report

Webcast icon

Self-service data prep for analytics

Want to learn how to get faster time to insights by giving business users direct access to data? This webinar shows how self-service tools like SAS Data Preparation make it easy for non-technical users to independently access and prepare data for analytics.

Watch now

E-book icon


SAS and Hadoop overview

Get acquainted with Hadoop and SAS concepts so you can understand and use the technology that best suits your needs. Check out this page learn how SAS technology interacts with Hadoop.

Get overview

Gestão de dados para Hadoop

Habilidades em big data estão em alta demanda. Agora, os usuários corporativos podem criar perfis, transformar e limpar dados – no Hadoop ou em qualquer outro local em que residam – usando uma interface de usuário intuitiva.

Leia mais sobre gestão de dados para Hadoop com SAS

Como o Hadoop está sendo usado?

Indo além de seu objetivo original de buscar entre milhões (ou bilhões) de páginas da web e retornar resultados relevantes, muitas organizações estão olhando para o Hadoop como a sua próxima grande plataforma de dados. Usos populares atuais incluem:

Armazenamento e arquivo de dados de baixo custo

O custo baixo de hardwares comuns torna o Hadoop útil para armazenar e combinar dados transacionais, de mídias sociais, de sensores, de máquinas, científicos, de fluxo de cliques etc. O armazenamento de baixo custo te permite manter a informação que não é considerada como essencial no momento, mas que você pode querer analisar no futuro.

Sandbox para descobertas e análises

Uma vez que o Hadoop foi projetado para lidar com volumes de dados em uma variedade de formas e tamanhos, ele pode executar algoritmos analíticos. Big data analytics com Hadoop pode ajudar a sua organização a operar com mais eficiência, revelar novas oportunidades e obter vantagens competitivas de alto nível. A abordagem sandbox oferece uma oportunidade de inovação com investimento mínimo.

Data lake

Data lakes suportam dados armazenados em seu formato exato ou original. O objetivo é oferecer uma visão crua ou não-refinada das informações aos analistas e cientistas de dados para descobertas e análises. Isso os ajudam a fazer perguntas novas ou difíceis sem restrições. Mas data lakes não substituem bancos de dados. Na verdade, gerir e tornar seguros os data lakes são temas importante para TI. Eles podem depender de técnicas de data federation para criar estruturas de dados lógicas.

Complementar seu banco de dados

Agora, nós estamos vendo o Hadoop começando a se aproximar de ambientes de data warehouse, bem como certos conjuntos de dados sendo transferidos do banco para o Hadoop ou novos tipos de dados indo diretamente para o Hadoop. O objetivo final de cada organização é ter a plataforma certa para armazenar e processar dados de diferentes programas, formatos etc, para suportar diferentes tipos de uso que podem ser integrados em diferentes níveis.

Internet das Coisas e Hadoop

Objetos conectados à Internet das Coisas precisam saber o que comunicar e quando agir. No centro da IoT está um fluxo de dados em abundância. Às vezes, o Hadoop é utilizado como o banco de dados de milhões ou bilhões de transações. Um grande poder de armazenamento e processamento permite a você usar Hadoop como um sandbox para descobertas e definição de padrões a serem monitorados para instruções prescritivas. Você pode, então, aprimorar essas instruções continuamente, já que o Hadoop está sendo atualizado constantemente com novos dados que não correspondem aos padrões definidos anteriormente.

 

Construindo um mecanismo de recomendação em Hadoop

Um dos usos analíticos mais populares dos maiores usuários de Hadoop é criar sistemas de recomendação online. Facebook – pessoas que você talvez conheça. LinkedIn – vagas recomendadas para você. Netflix, eBay, Hulu – itens pelos quais você pode se interessar. Esses sistemas analisam grandes quantidades de dados em tempo real para prever preferências rapidamente, antes que os clientes saiam da página da web.

Como: um sistema de recomendação pode gerar um perfil de usuário explicitamente (consultando o usuário) e implicitamente (observando o comportamento de um usuário) – daí, ele usa esse perfil para referenciar características (observações de uma comunidade de usuários inteira) para entregar recomendações relevantes. O SAS fornece inúmeras técnicas e algoritmos para criar um sistema de recomendação, variando de medidas básicas de distância à fatoração de matriz e filtragem colaborativa – tudo isso podendo ser feito com Hadoop.

Descubra como criar sistemas de recomendação em Hadoop e mais


Eu acredito que o Hadoop amadureceu ao ponto de pessoas poderem construir aplicações grandes e complexas com sucesso na plataforma. O Hadoop atendeu aos nossos requisitos de escalabilidade para lidar com dados volumosos e variados.
Bob Zurek, Vice Presidente Sênior de Produtos da Epsilon, em Hadoop para os Negócios, um TDWI Best Practices Report

Hadoop, inteligência analítica e o cientista de dados


Gosta de programar? Então você irá amar um ambiente interativo e multifuncional que oferece tudo o que você precisa para obter insights precisos dos dados no Hadoop. E na velocidade da luz.

Leia mais sobre inteligência analítica no Hadoop com SAS

Como funciona e um glossário de Hadoop

Atualmente, quatro módulos centrais estão inclusos na estrutura básica da Apache Foundation:

Hadoop Common – as bibliotecas e utilidades gerais usadas pelos outros módulos do Hadoop.

Hadoop Distributed File System (HDFS) – o sistema escalável baseado em Java que armazena dados em diversas máquinas, sem organização prévia.

Yet Another Resource Negotiator (YARN) – fornece gestão de recursos para os processos que estão sendo executados no Hadoop.

MapReduce – uma estrutura paralela de processamento. Ele é composto por duas etapas. A etapa map é um nó-mestre que obtém entradas e as particiona em subproblemas menores e, depois, os distribuem para nós funcionais. Após essa etapa, o nó-mestre leva as respostas de todos os subproblemas e os combinam para produzir uma saída.

Outros componentes de software que podem ser executados sobre ou junto com o Hadoop e atingiram status de nível máximo no projeto da Apache incluem:

AmbariUma interface web para gerir, configurar e testas serviços e componentes Hadoop.
CassandraUm sistema de banco de dados distribuído.
FlumeSoftware que coleta, agrega e coloca grandes quantidades de fluxos de dados em HDFS.
HBaseUm banco de dados distribuído e não-relacional, que é executado sobre o Hadoop. As tabelas HBase podem servir como entradas ou saídas para trabalhos de MapReduce.
HCatalogUma camada de gestão de tabelas e armazenamento que ajuda usuários a acessar e compartilhar dados.
HiveUm data warehouse e uma linguagem de consulta semelhante ao SQL que apresenta dados na forma de tabelas. A programação do Hive é semelhante à programação do banco de dados.
OozieUm organizador de tarefas para Hadoop.
PigUma plataforma para manipular dados armazenados em HDFS que inclui um compilador para programas MapReduce e uma linguagem de alto nível chamada Pig Latin. Ela fornece uma maneira de executar extrações de dados, transformações e carregamento, além de análises básica, sem precisar escrever programas MapReduce.
SolrUma ferramenta escalável que inclui indexação, confiabilidade, configuração central, tolerância a falhas e recuperação.
SparkUma estrutura de computação open-source em cluster com inteligência analítica in-memory.
SqoopUm mecanismo de conexão e transferência que movimenta dados entre Hadoop e bases de dados relacionais.
Zookeeper   
Uma aplicação que coordena processamento distribuído.

Distribuições comerciais do Hadoop

Softwares open-source são criados e mantidos por uma rede de desenvolvedores ao redor do mundo. São gratuitos para baixar, usar e contribuir com, embora mais e mais versões comerciais do Hadoop estejam sendo lançadas (as chamadas "distros"). Distribuídas por fornecedores de software, você paga pelas versões deles e recebe capacidades adicionais relacionadas à segurança, governança, SQL e consoles de gestão/administração, assim como treinamento, documentação e outros serviços. Distros populares incluem Cloudera, Hortonworks, MapR, IBM BigInsights e PivotalHD.

 


Adicionando dados ao Hadoop

Eis algumas maneiras de adicionar dados ao Hadoop:

  • Utilize conectores de terceiros (como o SAS/ACCESS® ou o SAS Data Loader for Hadoop);
  • Use Sqoop para importar dados estruturados de bases de dados relacionais para HDFS, Hive e HBase. Ele também pode extrair dados de Hadoop e exportá-los para bases e armazéns de dados relacionais;
  • Use Flume para carregar dados de acesso no Hadoop continuamente;
  • Carregue arquivos no sistema usando simples comandos Java;
  • Crie um cron job para escanear um diretório para novos arquivos e “colocá-los” no HDFS conforme eles são exibidos. Isso é útil para, por exemplo, baixar emails em intervalos regulares;
  • Monte o HDFS como um sistema de arquivos e copie ou redija arquivos nele.

Big Data, Hadoop e SAS

As soluções SAS para implementações de big data, incluindo Hadoop, gira em torno de um objetivo único – ajudar você a saber mais, e mais rápido, para que você possa tomar decisões melhores. Independentemente de como você usa a tecnologia, todo projeto deve passar por um ciclo de melhorias contínuo e iterativo. E isso inclui preparação, gestão, visualização e exploração de dados, desenvolvimento de modelos analíticos, implementação e monitoramento de modelos. Assim, você pode obter insights e rapidamente transformar seu big data com Hadoop em oportunidades ainda maiores.

Porque o SAS é focado em inteligência analítica, e não em armazenamento, nós oferecemos uma abordagem flexível para a escolha de fornecedores de hardware e de databases. Nós podemos ajudá-lo a implementar o mix certo de tecnologias, incluindo Hadoop e outras tecnologias de armazenamento de dados.

E lembre-se de que o sucesso de qualquer projeto é determinado pelo valor que ele traz. Então, métricas construídas acerca de geração de receita, margens, redução de risco e melhorias de processo vão ajudar projetos iniciais a ganhar maior aceitação e colher mais interesse de outros departamentos. Nós descobrimos que muitas empresas estão buscando por maneiras de implementar um ou outro projeto com Hadoop, já pensando em adicionar outros no futuro.

Mais sobre SAS e Hadoop