Artigo escrito por: Ademir Aparecido Monteiro – Cientista e Engenheiro de Dados
Para quem não leu ainda a parte 1, sugiro que leia, pois desta forma esse artigo será muito mais produtivo.
Continuando as dúvidas, no artigo anterior paramos na dúvida 9. Vamos prosseguir com a próxima.
Neste artigo falaremos somente sobre os outros softwares que fazem parte do “Ecossistema Hadoop”.
Dúvida 10:
O que é Hadoop MapReduce?
Mais uma sigla (ou sopa de letrinhas?). MapReduce (também conhecido como mapeamento e redução) é parte integrante do sistema de arquivos Hadoop. É um modelo de programação, que lida com grandes volumes de dados (Big Data). O seu poder de processamento está na capacidade de realizar processamento paralelo utilizando vários computadores que fazem parte do cluster. O MapReduce tem flexibilidade elástica para dimensionar rapidamente a quantidade de computadores com o objetivo de diminuir o tempo de execução.
Dúvida 11:
O que é Spark MapReduce?
O Apache Spark, ou simplesmente Spark, é um mecanismo de código aberto para computação distribuída.
Sua principal característica é o de processamento de dados em grande escala (Big Data). E para realizar o processamento, o Spark utiliza o Hadoop HDFS como local de armazenamento dos dados. Porém pode ser processado em outras plataformas, por exemplo, seu computador local, na nuvem, etc.
O Spark dispõe de outros módulos para auxiliar nas atividades, tais como, instruções SQL, streaming de dados, machine learning e processamento de gráficos.
Foi desenvolvido no AMPLab da Universidade da Califórnia e posteriormente repassado para a Apache Software Foundation que o mantém desde então.
Quer saber mais? Acessa o link oficial do Spark: https://spark.apache.org/
Dúvida 12:
Qual a diferença entre Hadoop MapReduce e Spark?
A principal diferença entre eles está na forma de realizar o processamento: o Spark pode fazer isso na memória, enquanto o Hadoop MapReduce precisa ler e gravar em um disco. Como resultado, a velocidade de processamento do Spark é muito maior.
Então quer dizer que devemos sempre usar o Spark? Depende da quantidade de dados que precisam ser processados. Neste caso é necessário verificar se tem memória suficiente para processar os dados. Se não tiver, terá que utilizar o Hadoop MapReduce.
Dúvida 13:
O Hadoop é um banco de dados?
Essa é uma confusão muito comum relacionado ao Hadoop. O Hadoop NÃO é um banco de dados. É somente um armazenador de arquivos semelhando a forma de armazenar arquivos que tem no seu próprio computador.
Dúvida 14:
O que é o Hive?
Mais uma animal da natureza para o ecossistema do Hadoop. Bom, é um animal meio elefante, meio abelha… rss.
O Hive é um sistema de data warehouse para o Apache Hadoop, projetado para trabalhar com grandes conjuntos de dados.
É permitido realizadas diversas consultas e análise de dados através da linguagem HiveQL, ou simplesmente HQL.
Quer se aprofundar no assunto? Segue o link da página oficial do Hive: https://hive.apache.org/
Dúvida 15:
O Hive é um banco de dados?
Essa é outra confusão com relação aos componentes do Hadoop. O Hive não é um banco de dados. O que o Hive consegue realizar uma abstração dos arquivos do Hadoop (HDFS) simulando um Data Warehouse com grande poder de processamento utilizando o MapReduce. O Hive tem uma linguagem conhecida com HiveQL (ou HQL) muito semelhante ao SQL.
Dúvida 14:
O que é HBase?
Mais uma animal para o ecossistema do Hadoop… rss
HBase é um banco de dados distribuído open-source orientado a coluna. Foi modelado e construído a partir do BigTable do Google, e escrito em Java. O Hbase tem fácil integração com o Hadoop. Sendo assim, pode utilizar o MapReduce para distribuir o processamento dos dados, podendo processar facilmente vários terabytes de dados.
É excelente para armazenar dados multi-estruturados.
Quer saber mais sobre o HBase? Segue o link para a página oficial: https://hbase.apache.org/
Dúvida 15:
O que é Apache Pig?
É exatamente esse o logo do Apache Pig. O nosso zoológico está aumentando.
Antes de responder o que é Apache Pig, vamos voltar ao MapReduce. Lembra? Se não lembra volte para a dúvida 10.
Utilizar o MapReduce não é trivial. É necessário escrever programas extremamente complexos. Pensando nisso, o Apache Pig veio para facilitar essa tarefa. Agora vamos responder o que é Apache Pig.
Apache Pig é uma ferramenta usada para processar grandes conjuntos de dados. Através da linguagem de alto nível de script, “Pig Latin”, é possível desenvolver programas para a análise de dados utilizando o poder de processamento do MapReduce.
Quer saber mais sobre o Apache Pig? Então dê uma olhada no link https://pig.apache.org/
Dúvida 16:
O que é e o Apache Giraph?
Apesar de ter nome de animal (girafa) o logotipo não é do animal. Não importa, mais um animal para o zoológico. rss
Apache Giraph é um framework de processamento grafo iterativo, construído em cima do Apache Hadoop utilizando o poder de processamento do MapReduce. Muito utilizado em redes sociais (por exemplo, Facebook) para verificar a ligação entre as pessoas. Algo semelhante à imagem abaixo:
Dúvida 17:
O que é Apache Storm?
Precisa processar grande quantidade de dados tempo real e em alta velocidade? O Apache Storm é a ferramenta adequada para essa tarefa gigante.
Apache Storm é um sistema de computação em tempo real distribuído de código aberto. Facilita o processamento de fluxos de dados ilimitados com confiabilidade. O Apache Storm é simples e pode ser usado com qualquer linguagem de programação. E aproveita todas as particularidades do Hadoop HDFS.
O Apache Storm tem muitas utilidades: análise em tempo real, aprendizado de máquina online, computação contínua, RPC distribuído, ETL e muito mais.
Ficou interessado no Apache Storm? Então saiba mais em https://storm.apache.org/
Dúvida 18:
O que é Apache Flink?
Ahh não!!! Mais um animal para o nosso zoológico. rss
O Apache Flink é uma estrutura e mecanismo de processamento distribuído para cálculos de dados ilimitados. Pode ser executado em todos os ambientes de cluster comuns. O Hadoop é um desses clusters. Realiza todos os cálculos em grandes volumes de dados na memória.
Ficou interessado no Apache Flink? Segue a página oficial: https://flink.apache.org/
Dúvida 19:
O que é Apache Cassandra?
O Apache Cassandra é um banco de dados distribuído NoSQL de código aberto confiável. Tem alta escalabilidade e alta disponibilidade sem comprometer o desempenho. A escalabilidade linear e a tolerância à falhas comprovada em hardware comum ou infraestrutura em nuvem o tornam a plataforma perfeita para dados de missão crítica.
A construção do Cassandra tem como base a arquitetura do DynamoDB, da Amazon Web Services. Seu modelo de dados é baseado no BigTable, do Google.
Dúvida 19:
O que é MongoDB?
MongoDB é um programa de banco de dados NoSQL e que permite armazenar documentos semelhantes ao formato JSON.
O seu código é aberto e roda em multiplataforma e foi escrito na linguagem C++. Foi projetado para armazenar grandes quantidades de dados. Além de permitir trabalhar eficientemente com grandes volumes de dados.
Quer usar o MongoDB para armazenar documentos. Então veja mais detalhes no link https://www.mongodb.com/
Dúvida 20:
O que é e o que faz o zookeeper no Hadoop?
Finalmente encontramos o personagem que vai cuidar do zoológico do Ecossistema Hadoop. Em tradução livre, é algo parecido como “funcionário do zoológico”
O Zookeper é uma ferramenta para gerenciar grandes clusters de computadores de forma centralizada. Entre os serviços realizados pelo ZooKeeper estão configurações dos computadores do cluster, nomear, sincronização distribuída e outros serviços de grupo.
Então se você tem um clusters de computadores que tal pensar no Zookeeper?
Quer saber mais? Segue o link oficial: https://zookeeper.apache.org/
Essas são as dúvidas mais recorrentes para quem se aventura no ecossistema hadoop. Sei que algumas pessoas terão outras dúvidas que não estão aqui. Porém é inviável falar sobre todas as dúvidas pertinentes ao Hadoop e a tudo que envolve esse ecossistema.
Poderíamos falar sobre tantas outras ferramentas que compõem o ecossistema hadoop tais como, Kafka, sqoop, Mahout, Impala, etc.
Deixo para você o desafio de acrescentar mais respostas às dúvidas que considerarem mais importantes.