Baixe o app para aproveitar ainda mais
Prévia do material em texto
Inserir Título Aqui Inserir Título Aqui Tecnologias de BI e Big Data Introdução ao Projeto Hadoop Responsável pelo Conteúdo: Prof. Dr. Alberto Messias Revisão Textual: Profa. Ms. Natalia Conti Nesta unidade, trabalharemos os seguintes tópicos: • Introdução ao Tema • Orientações para Leitura Obrigatória • Material Complementar Fonte: iStock/Getty Im ages Objetivos • Permitir ao estudante compreender as definições iniciais sobre o projeto Hadoop, suas características e conhecer os principais projetos agregados, adquirir conhecimento para a instalação e configuração de uma instância Hadoop e fazer experimentos iniciais de contagem de palavras em bases de dados reais. Caro Aluno(a)! Normalmente, com a correria do dia a dia, não nos organizamos e deixamos para o último momento o acesso ao estudo, o que implicará o não aprofundamento no material trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas. Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns dias e determinar como o seu “momento do estudo”. No material de cada Unidade, há videoaulas e leituras indicadas, assim como sugestões de materiais complementares, elementos didáticos que ampliarão sua interpretação e auxiliarão o pleno entendimento dos temas abordados. Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discussão, pois estes ajudarão a verificar o quanto você absorveu do conteúdo, além de propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e aprendizagem. Bons Estudos! Introdução ao Projeto Hadoop UNIDADE Introdução ao Projeto Hadoop Introdução ao Tema Introdução e projetos no Hadoop Hadoop é o termo usado para se referir a uma família de projetos relacionados, que compõe a infraestrutura para computação distribuída e de larga escala de processamento, que usa o conceito de Big Data. De acordo com White (2015), Hadoop é a implementação para MapReduce e sistema de arquivos distribuído mais utilizado e conhecido. O MapReduce é um modelo de processamento de dados distribuído e um ambiente de execução em clusters de larga escala. Esse modelo divide o processamento em mapas e o divide em fases, cada fase se baseia em um par de chave/valor usado como entrada e saída para o processo. O programador especifica duas funções, o mapa e as funções de redução, para serem usadas na implementação e execução específica (WHITE, 2015). A biblioteca de software Apache Hadoop é um framework que permite o processamento distribuído de grandes conjuntos de dados em clusters de computadores que utilizam modelos de programação simples. Ele é projetado para escalar a partir de um único servidor para milhares de máquinas, cada um oferecendo computação e armazenamento local. Em vez de confiar em hardware para proporcionar maior disponibilidade, a biblioteca em si é concebida para detectar e tratar falhas na camada de aplicação, de modo a fornecer um serviço altamente disponível no topo de um conjunto de computadores, cada um dos quais pode ser propenso a falhas. O projeto principal é composto por alguns componentes principais, que são: • Hadoop common: os utilitários e bibliotecas comuns que dão suporte aos outros módulos do Hadoop, como por exemplo, fornece sistemas de arquivos, abstrações do Sistema Operacional, contém os arquivos e scripts Java necessários para iniciar Hadoop. • Sistema de arquivos distribuídos Hadoop (HDFS): um sistema de arquivos distribuídos que fornece acesso de alto débito aos dados do aplicativo. • Hadoop YARN: uma estrutura para agendamento de trabalho e gerenciamento de recursos de cluster. • Hadoop MapReduce: um sistema baseado em YARN para processamento paralelo de grandes conjuntos de dados. Funciona como uma API que permite a criação de programas que executarão a divisão e redução das tarefas, executando sempre a estrutura de entrada e saída presente no Hadoop. A Figura 1 ilustra a estrutura do Map Reduce. 6 7 Figura 1 Fonte: Adaptado de, Shenoy, 2014 Observa-se pela Figura a divisão das tarefas e a posterior agregação dos resultados para criar uma única saída. Segue a Figura 2 que ilustra a estrutura básica do Hadoop e as interações entre os principais projetos: Figura 2 Hadoop Distributed File System (HDFS) O HDFS é um sistema de arquivos projetado para armazenar arquivos extremamente grandes com um padrão de fluxo de acesso, executar sob clusters de computadores pessoais ou plataformas de hardware comuns (WHITE, 2015). O HDFS é um sistema de arquivos altamente tolerante a falhas projetado para executar em hardware padrão de baixo custo; é ideal para armazenar grandes quantidades de dados. Permite a conexão de nós contidos nos clusters por meio dos quais os arquivos de dados são distribuídos. É possível acessar e armazenar os arquivos de dados como um sistema de arquivos contínuo. Seguem algumas características a destacar: 7 UNIDADE Introdução ao Projeto Hadoop • Arquivos muito grandes: “Muito grande” neste contexto significa arquivos que são centenas de megabytes, gigabytes, ou terabytes de tamanho. Acesso a dados de streaming: HDFS é construído em torno da ideia de que o padrão de processamento de dados mais eficiente é uma write-once, muitas vezes ler-padrão. Um conjunto de dados é tipicamente gerado ou copiado a partir da fonte, em seguida, várias análises são realizadas em conjunto de dados ao longo do tempo. Cada análise envolve uma grande parte, se não a totalidade, do conjunto de dados, de modo que o tempo para ler o conjunto de dados inteiro é mais importante do que a latência na leitura do primeiro registro. • Hardware commodity: O Hadoop não exige hardware caro, hardware altamente confiável para executar. Ele foi projetado para ser e xecutado em clusters de hardware commodity (hardware comumente disponível de vários fornecedores), cuja probabilidade de falha do nó no cluster é elevada, pelo menos para grandes clustering. O HDFS é projetado para continuar a trabalhar sem interrupção perceptível para o usuário em caso de falha. Áreas onde HDFS não é bom: • Acesso de baixa latência de dados: Os aplicativos que requerem acesso de baixa latência aos dados, de dezenas de milissegundos, não funcionarão bem com HDFS. O HDFS é otimizado para fornecer uma alta taxa de transferência de dados, e isto pode ser feito à custa de latência. O HBase é a melhor alternativa para o acesso de baixa latência. • Muitos pequenos arquivos: o namenode contém os metadados do sistema de arquivos em memória, o limite para o número de arquivos em um sistema de arquivos é regida pela quantidade de memória no namenode. Como regra geral, cada arquivo, diretório e bloco utiliza ao menos cerca de 150 bytes. Assim, por exemplo, se você tivesse um milhão de arquivos, cada um tendo um bloco, você precisaria de pelo menos 300 MB de memória. Enquanto o armazenamento de milhões de arquivos é viável, bilhões está além da capacidade de hardware atual. • Vários escritores, modificações em arquivos: Arquivos em HDFS poderão ser escritos por um único escritor. Gravações são feitas necessariamente no final do ficheiro. Não há suporte para vários escritores, ou para modificações em deslocamentos arbitrários no arquivo. (Estes podem ser suportados no futuro, mas eles tendem a ser relativamente ineficientes). O MapReduce e o HDFS possuem uma API para o desenvolvimento e o uso de suas funcionalidades. 8 9 Sub-projetos Hadoop Seguem alguns dos principais sub-projetos Hadoop: Apache Pig Apache Pig é uma plataforma para análise de grandes conjuntos de dados que con- siste em uma linguagem de alto nível para expressar programas de análise de dados. Ele possui a infraestrutura para a avaliação desses programas, sua estrutura é passível de paralelização, que por sua vez lhes permite lidar com grandes conjuntosde dados. O usuário não precisa se preocupar com o desempenho, pois ele próprio faz a otimização. A camada de linguagem do pig atualmente consiste em uma linguagem textual chamado “Pig Latin”, que tem as seguintes propriedades-chave: • A linguagem utilizada para expressar os fluxos de dados, chamado Pig Latin. • O ambiente de execução para executar programas na linguagem Latin Pig. Atualmente dois ambientes: execução local em uma única JVM e execução distribuída em um Cluster Hadoop. Segue um exemplo simples, basta escrever o programa para calcular o valor máximo de temperatura registrada por ano para o conjunto de dados em tempo Pig Latin: Figura 3 Hive Um dos maiores ingredientes na plataforma de informação construídos pela equipe de Jeff no Facebook foi Hive. Uma estrutura para armazenamento de dados em cima do Hadoop, o Hive cresceu a partir de uma necessidade de gerenciar e aprender com os grandes volumes de dados que o Facebook estava produzindo todos os dias a partir de sua crescente rede social. Depois de tentar alguns diferentes sistemas, a equipe optou pelo Hadoop para armazenamento e processamento, uma vez que era rentável e atendeu às necessidades de escalabilidade. O Hive foi criado para torná-lo possível para analistas com fortes habilidades em SQL (mas habilidades de programação Java escassas) executar consultas sobre os enormes volumes de dados que o Facebook armazenava no HDFS. Hoje Hive é um projeto Apache bem sucedido usado por muitas organizações como o propósito de ser uma plataforma de processamento de dados escalável. Seguem alguns exemplos de comandos em Hive: 9 UNIDADE Introdução ao Projeto Hadoop Figura 4 HBase HBase é um banco de dados distribuído construído sob o HDFS. É a aplicação Hadoop para usar quando você precisa em tempo real de leitura/gravação de acesso aleatório para grandes conjuntos de dados. O HBASE é um banco de dados do tipo NoSQL e não relacional. Como exemplos de NoSQL, além do HBASE, temos o MongoDB, o Amazon SimpleDB e o Oracle NoSQL. Sua melhor aplicabilidade é quando temos uma quantidade de dados muito grande, aproveitando assim o potencial do cluster Hadoop/HDFS. Com bases de dados que utilizem 5 nós ou mais, o HBASE realmente mostra o seu potencial. Podemos acessar os dados armazenados no HBASE através de uma API Java, por linha de comando (HBASE Shell), Python, Avro, Rest, Thrift, etc. A maneira mais rápida de acessá-lo é usando a API Java, que permite criar tabelas, fazer Put, Get, Scan, Delete, dentro de outros comandos. Segue um exemplo de comando em Hbase: Figura 5 Zookeeper Hadoop tem um serviço de coordenação distribuída, chamado ZooKeeper, que é um serviço centralizado para manter as informações de configuração, nomeando, proporcionando sincronização distribuída e prestação de serviços. Funciona em um conjunto de máquinas e é projetado para ser altamente disponível. Ele evita a introdução de pontos únicos de falha em seu sistema, para que você possa construir um aplicativo confiável. Interações Zookeeper apoia os serviços participantes que não precisam saber sobre um outro. Por exemplo, ZooKeeper pode ser utilizado como um mecanismo de encontro, de modo que processos que de outra forma não sabem da existência um do outro (ou detalhes da rede) possam descobrir e interagir uns com os outros. 10 11 / /zoo /zoo/duck /zoo/goat /zoo/cow Figura 6 Cassandra Cassandra é uma implementação bancos de dados não relacionais ou NoSQL, que suporta o modelo de dados Big Table e usa aspectos de arquitetura introduzidos por Amazon Dynamo. Alguns dos pontos positivos do Cassandra são: • Alta escalabilidade e disponibilidade, sem um ponto único de falha; • Implementação de bancos de dados NoSQL; • Rendimento de gravação muito alto e bom rendimento de leitura; • Linguagem de consulta semelhante a SQL; • Consistência ajustável e suporte para replicação; • Esquema flexível; Chukwa É um subprojeto dedicado ao carregamento massivo de vários arquivos de texto dentro de um cluster Hadoop (ETL). Chukwa se constrói sob o sistema de arquivos distribuído (HDFS) e o marco MapReduce e herda a escalabilidade e robustez de Hadoop. Também inclui um conjunto de ferramentas flexível e potente para a visualização e análise dos resultados. 11 UNIDADE Introdução ao Projeto Hadoop Ambari Ambari permite que os administradores do sistema para disposição, gerenciamento e monitoramento de um cluster Hadoop, e também para integração Hadoop com a infraestrutura corporativa existente. Provisionando um cluster Hadoop • Não importa o tamanho do seu cluster Hadoop, a implantação e a manutenção dos exércitos é simplificada usando Ambari. Ambari inclui uma interface Web intuitiva que permite que você facilmente disponha, configure e teste todos os serviços do Hadoop e componentes principais. Ambari também fornece a poderosa API ambari Blueprints para automatizar instalações de cluster, sem a intervenção do usuário. Gerenciar um cluster Hadoop • Ambari fornece ferramentas para simplificar o gerenciamento do cluster. A interface Web permite-lhe controlar o ciclo de vida de serviços e componentes do Hadoop, modificar configurações e gerenciar o crescimento contínuo do seu cluster. Monitorar um cluster Hadoop • Ter uma visão instantânea sobre a saúde do seu cluster. Ambari pré-configura alertas para assistir serviços Hadoop e visualiza os dados operacionais de cluster em uma interface Web simples. Integrar Hadoop com a Empresa • Ambari oferece uma API RESTful que permite a integração com as ferramentas existentes, como o Microsoft System Center Operations Manager, HP Operations Manager e Teradata Ponto de Vista, para mesclar Hadoop com os seus processos operacionais estabelecidos. Segue a Figura 7 que ilustra o relacionamento entre os sub-projetos agregados ao Hadoop. Zo oK ee pe r Hive Chuckwa Pig MapReduce HBase HDFS Figura 7 Processo de instalação do Hadoop em um Single Node Aqui será descrito o processo de instalação e configuração do Hadoop para um único nó utilizando o Linux Debian. • Atualizar o sistema, trocar o perfil do usuário no sistema para administrador (root) e digitar os comandos: 12 13 apt-get update apt-get upgrade • Como administrador, adicionar um grupo hadoop e um usuário hadoop-user a esse grupo, havendo a possibilidade de deixar as informações solicitadas por adduser em branco, com exceção da senha: addgroup hadoop adduser --ingroup hadoop hadoop-user • Instalar o Java 8, ainda como administrador do sistema. Remover o openjdk, configurar o Java 8: apt purge openjdk* echo “deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main” | tee/etc/apt/sources.list.d/webupd8team-java.list echo “deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main” | tee -a /etc/apt/sources.list.d /webupd8team -java.list apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886 • Mais uma vez atualizar o sistema e instalar: apt-get update apt install -y oracle-java8-installer • Aceitar a licença de software e verificar se a versão correta foi instalada: java -version Configurar a variável de ambiente $JAVA_HOME, ainda usando o usuário administrador do sistema: sh -c ‘echo “export JAVA_HOME=/usr/local/JDK...” >> /etc/profile’ source /etc/profile| O trecho “JDK...” devem ser trocadas pelo local onde foi instalado o JDK. • Comunicações do Hadoop são criptografadas via SSH, portanto, o servidor foi instalado e configurado: apt-get install openssh-server • O hadoop-user foi associado a um par de chaves e subsequentemente concedeu o seu acesso à máquina local, para configurar o SSH, havendo a necessidade de mudar para o hadoop-user: su - hadoop-user ssh-keygen -t rsa -P “” cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys 13 UNIDADE Introdução ao Projeto Hadoop • O hadoop-user será capaz de acessar via ssh o localhost sem fornecer senha: ssh localhost • Voltar ao administrador da máquina, fazer o downloaddo Hadoop, descompactar e mover para “/usr/local”, adicionar o link usando o nome hadoop, alterando do conteúdo para o hadoop-user: wget http://mirror.nohup.it/apache/hadoop/common/hadoop-2.7.1/ hadoop-2.7.1.tar.gz tar xzf hadoop-2.7.1.tar.gz rm hadoop-2.7.1.tar.gz mv hadoop-2.7.1 /usr/local ln -sf /usr/local/hadoop-2.7.1/ /usr/local/hadoop chown -R hadoop-user:hadoop /usr/localhadoop-2.7.1/ • Mudar para o hadoop-user e adicionar as seguintes linhas no final de ~/.bashrc: Figura 8 Para que as novas variáveis de ambiente estejam em vigor, é preciso recarregar o arquivo .bashrc: source .bashrc • Modificar arquivos de configurações dentro /usr/local/hadoop/etc/hadoop. Todos eles seguem o formato XML e configuration; as atualizações referem-se ao nó de nível superior. Especificamente: No arquivo em yarn-site.xml: Figura 9 No arquivo em core-site.xml: 14 15 Figura 10 • Em mapred-site.xml (likey para ser criado através de cp mapred-site.xml.template mapred-site.xml): Figura 11 No arquivo em hdfs-site.xml: Figura 12 • Isso requer a criação manual dos dois diretórios especificados nos dois últimos value nos XML: mkdir -p /usr/local/hadoop/yarn_data/hdfs/namenode mkdir -p /usr/local/hadoop/yarn_data/hdfs/datanode • Insira o “/usr/local/java/JDK...” na variável JAVA_HOME, no arquivo /usr/local/ hadoop/etc/hadoop/hadoop-env.sh. • Agora você poderá iniciar o serviço do Hadoop; para isso use o comando: /usr/local/hadoop/sbin/start-all.sh • Formatar o sistema de arquivos, operação a ser executada como hadoop-user: hdfs namenode -format Note que a instalação aqui descrita foi para um único nó, porém pode-se encontrar facilmente na documentação do Hadoop a instalação e configuração para clusters de hadoop. Por exemplo, no link: http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ ClusterSetup.html 15 UNIDADE Introdução ao Projeto Hadoop O processo é importante como referência para um administrador, porém, há inúmeras máquinas virtuais que podem ser baixadas com todas as funcionalidades prontas para o uso, como por exemplo, da Cloudera ou Hortonworks. Outra alternativa é usar as máquinas prontas nas plataformas de computação em nuvem, pois o hadoop está presente em todas as grandes plataformas, como Google, IBM, Amazon e Microsoft Azure. Iniciando com o Hadoop O Hadoop possui algumas ferramentas administrativas interessantes que podem auxiliar no processo de administração diária. A URL principal de visualização de informações você pode acessar através do endereço: http://IP_HADOOP:50070/ Nesse caso: http://192.168.1.124:50070 Figura 13 Há uma URL q ue permitirá ao administrador visualizar todos os arquivos presentes no HDFS, indo em “Utilities/Browse the file system”, conforme se observa na Figura. Figura 14 Através dos links presentes nessa ferramenta é possível se observar por exemplo, o processo de inicialização do hadoop, LOGs, os datanodes e seus respectivos tamanhos no sistema de arquivos, dentre outras informações. 16 17 Há ainda uma página de administração que exibe uma série de outras informações a respeito das execuções de processamentos no hadoop. Figura 15 A interface exibe as aplicações em execução e seus respectivos tempo e porcentagem de conclusão do processamento. Alguns comandos para o gerenciamento do HDFS são importantes de o administrador conhecer, grande parte herdados de comandos Unix/Linux, como: • ls para listagem de arquivos; • rm para remover arquivos; • rmdir para remover diretórios; • cat para exibir conteúdos de arquivos; • cp para copiar arquivos; • copyFromLocal para enviar um arquivos para o HDFS; • find para buscar arquivos; • chmod para editar permissões sobre um arquivo; • chow para alterar o dono de um arquivo; • mv para mover um arquivo entre diretórios; • moveFromLocal para mover um arquivo para o HDFS; • appendToFile para inserir conteúdos no final do arquivo. Dentre uma lista completa que se encontra facilmente nos documentos presentes no site do fabricante no link: http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ FileSystemShell.html Exemplo de contagem de palavras com o Hadoop Vamos a um exemplo trivial de contagem de palavras. Assume-se que se deve estar autenticado com o usuário hadoop-user em nossa instância de Hadoop. 17 UNIDADE Introdução ao Projeto Hadoop O primeiro passo será copiar para o HDFS da instância de Hadoop que estamos executando, nesse caso com o seguinte comando: hadoop fs -copyFromLocal ola.txt / O comando copia o arquivo ola.txt para a raiz do sistema de arquivos HDFS. Pela interface WEB você consegue se certificar que a cópia do arquivo ocorreu, conforme pode-se observar na Figura abaixo. Figura 16 O Conteúdo do arquivo é: “Olá mundo hadoop. Cruzeiro do Sul Educação a distância. Universidade Cruzeiro do Sul. Professor Alberto.” Para se certificar que o arquivo foi copiado, você pode acessar a página de navegação em arquivos Nos diretórios de exemplos do hadoop há uma implementação de contagem de palavras no arquivo “hadoop-mapreduce-examples-2.7.4.jar”, que está no diretório “hadoop/share/hadoop/mapreduce/”. O comando pode ser executado da seguinte maneira: hadoop jar hadoop-mapreduce-examples-2.7.4.jar wordcount /ola.txt /ola_output O comando é dividido da seguinte maneira: “hadoop jar” informando que será executado um arquivo no formato jar, nesse caso o “hadoop-mapreduce-examples- 2.7.4.jar”. Os parâmetros seguintes são executar a função “wordcount”, passando como parâmetros o arquivo ou diretório de entrada e arquivo de saída. Para se resgatar o arquivo de saída, pode-se copiá-lo por comando no HDFS ou fazer o download através da interface WEB. 18 19 Figura 17 O arquivo de saída, o “part-r-00000”. Segue o arquivo de saída do comando executado: Alberto. 1 Cruzeiro 2 Educação 1 Olá 1 Professor 1 Sul 1 Sul. 1 Universidade 1 a 1 distância. 1 do 2 hadoop. 1 mundo 1 Na primeira coluna o arquivo de saída possui a palavra e na segunda coluna a frequência com que a palavra ocorreu no texto. Note que o comando não faz nenhuma limpeza ou pré-processamento na base de dados; nesse caso ele diferenciou a palavra “sul” de “sul.” Vamos a um segundo exemplo com uma base de dados real, o primeiro passo será baixar a base de dados a qual iremos utilizar na execução de exemplo. A base de exemplo se trata de uma base de postagem de 50 autores em Blogs, ela pode ser baixada no link: https://archive.ics.uci.edu/ml/machine-learning- databases/00217/C50.zip 19 UNIDADE Introdução ao Projeto Hadoop Descompacte o arquivo C50.zip baixado do site através do comando: unzip C50.zip hadoop fs -copyFromLocal C50/ / Verifique pelo navegador se os arquivos foram copiados, se agora existem as duas pastas C50test e C50train, conforme se observa na figura: Figura 18 Vamos executar o comando de contagem de palavras para um diretório de um dos autores e na base de testes. hadoop jar hadoop-mapreduce-examples-2.7.4.jar wordcount /C50/C50test/ AaronPressman/ C50/output Ou caso se queira executar para a base inteira: hadoop jar hadoop-mapreduce-examples-2.7.4.jar wordcount /C50/C50test/*/* / C50/output Figura 19 Essa execução deve se demorar, tendo em vista o tamanho da base e que o comando está sendo executado em uma única instância de Hadoop. O arquivo de saída poderá ser baixado através da interface WEB do Hadoop. 20 21 Orientações para Leitura Obrigatória Indicação de Leitura Obrigatória de um artigo do site da IBM que traz uma introdução aos projetos Hadoop, bem como alguns exemplos de execução de máquinas virtuais já prontas. https://goo.gl/UVUftu Link de referência com os diversos comandos existentes para o HDFS. https://goo.gl/tMxgBb Leitura obrigatória do Ebook free Hadoop Explained presente no link: https://goo.gl/MC3Edx 21 UNIDADE Introdução ao Projeto Hadoop Material Complementar Indicações para saber mais sobre os assuntos abordadosnesta Unidade: Sites UCI Link para download de bases de dados para experimentos BI/Big Data. https://goo.gl/xvrdyL Hadoop Cluster Setup Link de referência de instalação do Hadoop em Cluster. https://goo.gl/KbH724 MapReduce Tutorial Link de referência para o Mapreduce em Hadoop e com diversos exemplos de execução iniciais. https://goo.gl/ijyQrM Conhecendo o Hadoop Link com descrição do hadoop e os projetos relacionados. https://goo.gl/ZHGRsW Introdução ao Hadoop YARN Link para palestra online que fala sobre o Hadoop e projetos abaixo da comunidade. https://goo.gl/G7xnUj 22 23 Referências Aravind Shenoy, Hadoop Explained, Packt Publishing, Mumbai, 2014, acessado em 12/09/2017, disponível em: https://www.packtpub.com/packt/free-ebook/hadoop- explained. QUINTERO D., BOLINCHES L., SUTANDYO A. G., JOLY N., KATAHIRA R. T., IBM Data Engine for Hadoop and Spark, IBM RedBooks, 2016, acessado em 12/09/2017, disponível em http://www.redbooks.ibm.com/redbooks/pdfs/ sg248359.pdf WHITE, T. (2010). Hadoop: The Definitive Guide. O’Reilly Media 23
Compartilhar