Aula 04 - Funcionalidades HDFS e MapReduce

Description

Hadoop Mind Map on Aula 04 - Funcionalidades HDFS e MapReduce, created by Ronaldo Pimentel on 21/10/2017.
Ronaldo Pimentel
Mind Map by Ronaldo Pimentel , updated more than 1 year ago
Ronaldo Pimentel
Created by Ronaldo Pimentel about 7 years ago
38
2

Resource summary

Aula 04 - Funcionalidades HDFS e MapReduce
  1. HDFS
    1. HADOOP DISTRIBUTED FILE BIG DATA SYSTEM - HDFS – Sistema de arquivos distribuído – Executado em um sistema de arquivos nativo – Otimizado para processamento de grande volume de dados (alta taxa de transferência) – Abstrai questões de armazenamento distribuído dos dados – Escalável e tolerante a falhas
      1. O Hadoop… … é um framework open source desenvolvido em Java … é projetado para manipular grande volume de dados … é projetado para ser escalável em milhares de máquinas … é projetado para ser executado em hardware de baixo custo … oferece resiliência por meio da replicação de dados … oferece recuperação automática do processo em caso de falha … faz distribuição automática dos dados no cluster … projetado para levar o processamento para o dado
        1. Dicas para adoção do Hadoop • Faça uma expansão do cluster na medida em que novas aplicações de interesse forem identificadas • Construa uma plataforma centralizada dos dados • Propague o conhecimento de Hadoop e NoSQL com outros grupos • Dê ao seu time tempo para fazer experimentos • Planeje a existência de aplicações novas, tradicionais e legadas
        2. Cluster Hadoop
          1. Agrupa vários Racks
            1. Rack Hadoop
              1. Comporta vários nós
                1. Nó Hadoop
                  1. Comporta Processos Hadoop, JVM, LInux, CPU, Memória, Disco
                2. Rack 01
                  1. NameNode - NN
                  2. Rack 02
                    1. SecondaryNameNode - SNN
                    2. Rack 03
                      1. DataNode
                        1. Arquivos são divididos em blocos de 64 MB (tamanho default)
                3. Otimizado para ler/armazenar grandes arquivos em um cluster
                  1. Blocos são replicados para tolerância a falhas (default - 3 réplicas)
                    1. Opções para carregamento de dados para o HDFS
                      1. LInha de comando
                        1. Java Api
                          1. Ecosistema Hadoop , Sqoop, Flume, Hue
                          2. Modos de execução
                            1. • Local (standalone) – Executado como um único processo java – Recomendado para depuração de código
                              1. Pseudo-distribuído – Todos os componentes Hadoop são executados em uma única máquina – Cada componente é executado em um processo java separado
                                1. Completamente distribuído – Cluster Hadoop utilizando múltiplas máquinas
                                2. Comandos FS shell
                                  1. Verificar servicos [training@localhost ~]$ sudo jps
                                    1. Verificar versão do Hadoop BIG DATA training@localhost ~]$ hadoop version
                                      1. Criar diretorio para receber arquivo [training@localhost ~]$ hadoop fs -mkdir input MBA
                                        1. Enviar base de dados para o HDFS BIG DATA [training@localhost ~]$ hadoop fs -put ~/bases/compras.txt input MBA
                                          1. Listar arquivos armazenados no HDFS BIG DATA [training@localhost ~]$ hadoop fs -ls
                                            1. Visualizar conteúdo de arquivo no HDFS BIG DATA [training@localhost ~]$ hadoop fs -cat input/compras.txt
                                              1. Copiar arquivo do HDFS para arquivo local BIG DATA [training@localhost ~]$ hadoop fs -get input/compras.txt/home/training/bases/compras_cp.txt
                                                1. Copiar um arquivo para outro diretório (ou outro cluster) BIG DATA [training@localhost ~]$ hadoop distcp /user/training/input/user/training/input2
                                                  1. Removendo um arquivo BIG DATA [training@localhost ~]$ hadoop fs -rm input2/compras.txt
                                                    1. Removendo um diretório BIG DATA [training@localhost ~]$ hadoop fs -rm -r input2
                                                    2. Acessar a interface WEB do HDFS BIG DATA
                                                      1. http://localhost:50070/dfshealth.html#tab-overview
                                                    3. MapReduce
                                                      1. Características
                                                        1. O que é necessário implementar em uma aplicação distribuída?
                                                          1. Implementado pelo desenvolvedor
                                                            1. Lógica do Problema
                                                            2. Implementado pelo MapReduce
                                                              1. Alocação de máquinas
                                                                1. Escalonamento de tarefas
                                                                  1. Balanceamento de carga
                                                                    1. Comunicação entre máquinas
                                                                      1. Tolerância a falhas
                                                                        1. Escalabilidade
                                                                        2. Arcabouço de software para facilitar a execução de aplicações que processam um grande volume de dados em um cluster de milhares de nós de hardware convencional de maneira tolerante a falhas.
                                                                          1. 1. Paradigma de programação distribuída 2. Engine de execução de aplicações distribuídas 3. Implementado em Java 4. Executa programas implementados em Java, Python, Ruby e C++
                                                                          2. Arquitetura
                                                                            1. JobTracker JT
                                                                              1. • Nó mestre • Gerenciador de tarefas MapReduce
                                                                              2. TaskTracker TT
                                                                                1. • Executam as tarefas MapReduce
                                                                                2. JOB Um programa completo Uma aplicação
                                                                                  1. TAREFA Execução de um Mapper ou Reducer sobre uma fatia dos dados
                                                                                    1. Mova as tarefas, não os dados 1. Uma aplicação cliente submete um job ao JobTracker 2. JobTracker se comunica com o NameNode para determinar a localização dos dados 3. JobTracker localiza os nós TaskTrackers próximos aos dados 4. JobTracker submete as tarefas aos nós TaskTrackers
                                                                                  2. Tolerância a falhas 1. Em um grande cluster, as máquinas ficam lentas ou falham com frequência 2. MapReduce oferece recuperação automática de tarefas que falharam 3. MapReduce redireciona tarefas falhas para outros nós do cluster
                                                                                    1. Escalabilidade linear “Escalabilidade é a capacidade do sistema de manter o desempenho com o aumento de carga, pela adição de mais recursos
                                                                                    2. Modelo de Programação
                                                                                      1. Exemplo tradicional do MapReduce: WordCount Dados de entrada: um ou mais arquivos de texto Objetivo: contar o número de ocorrências de cada palavra encontrada no texto Resultado: arquivo texto contendo uma lista em que cada linha apresenta uma palavra e seu respectivo número de ocorrências Exemplo de aplicabilidade: trending topics do Twitter
                                                                                        1. DAdos de entrada
                                                                                          1. Split dos dados
                                                                                            1. Tarefas Map
                                                                                              1. Ordenação
                                                                                                1. Tarefas Reduce
                                                                                                  1. Dados saída
                                                                                        2. Exemplos de análises utilizando o modelo de programação MapReduce
                                                                                          1. Mineração de Texto
                                                                                            1. Filtragem colaborativa
                                                                                              1. Modelos preditivos
                                                                                                1. Reconhecimentos de Padroes
                                                                                                  1. Análise de sentimento
                                                                                                    1. Análise de risco
                                                                                                    2. Responsabilidade do desenvolvedor
                                                                                                      1. MapReduce Job
                                                                                                        1. Chaves e Valores Classe reducer Classe mapper Classe driver
                                                                                                          1. Exemplos de chaves e valores Um número de telefone (chave) com os registros das chamadas (valores) Um usuário do facebook (chave) e suas informações do perfil (valores) O número de um cartão de crédito (chave) e suas transações (valores)
                                                                                                      2. Funcoes Map e Reduce
                                                                                                        1. Classe Mapper
                                                                                                          1. Classe Reducer
                                                                                                            1. Chamada de um MapReduce job - Exemplo
                                                                                                              1. bin/hadoop jar /home/fia/meuwordcount.jar WordCount dados_entrada dados_saida
                                                                                                            2. Classe Driver
                                                                                                              1. Como utilizar as classes implementadas? 1. Gerar um arquivo JAR com as classes implementadas 2. Submeter o JAR por meio da função “hadoop jar” JAR (Java ARchive) é um arquivo compactado usado para distribuir um conjunto de classes Java. É usado para armazenar classes compiladas e metadados associados que podem constituir um programa.
                                                                                                                1. Mas como gerar uma aplicação MapReduce utilizando outras linguagens de programação?
                                                                                                                  1. Hadoop Streaming API – Permite a execução de tarefas map e reduce com diversas linguagens (desde que a linguagem possa ler o input e output padrão) – A entrada dos dados são recebidas do stdin – A saída dos dados são gravadas no stdout – A execução é oferecida por meio do componente hadoop-streaming.jar
                                                                                                                    1. Hadoop Streaming API – Exemplo bin/hadoop jar /usr/local/hadoop/hadoop-streaming.jar \ -input "/user/dados_entrada.txt" \ -output "/user/out" \ -mapper "meuMapper.py" \ -reducer "meuReducer.py"
                                                                                                                  2. quais outras aplicações poderiam ser feitas a partir dessa base de dados?
                                                                                                                    1. • Análise de sentimento • Identificação de pandemias • Comparação entre marcas • Identificação de usuários influentes
                                                                                                              Show full summary Hide full summary

                                                                                                              Similar

                                                                                                              Bigdata - Arquitetura Hadoop
                                                                                                              Ronaldo Pimentel
                                                                                                              Bigdata - Arquitetura Hadoop
                                                                                                              Gustavo Galhardo
                                                                                                              Bigdata - Arquitetura Hadoop
                                                                                                              Roberta Reis
                                                                                                              Bigdata - Arquitetura Hadoop
                                                                                                              Wagner Oliveira Nascimento
                                                                                                              Bigdata - Arquitetura Hadoop
                                                                                                              WALLACE SANTOS GRACA
                                                                                                              Social Influence
                                                                                                              smita089
                                                                                                              Chemistry Quiz General -3
                                                                                                              lauren_johncock
                                                                                                              GCSE History of Medicine: Key Individuals
                                                                                                              James McConnell
                                                                                                              GCSE Physics Revision notes
                                                                                                              Megan McDonald
                                                                                                              GCSE History – The early years and the Weimar Republic 1918-1923
                                                                                                              Ben C
                                                                                                              Testing for ions
                                                                                                              Joshua Rees