apache hadoop

89
Apache Hadoop Apache Hadoop Conceitos teóricos e práticos, evolução e novas possibilidades Daniel Cordeiro Departamento de Ciência da Computação Instituto de Matemática e Estatística Universidade de São Paulo Baseado no curso apresentado no CSBC’12 pelos professores Alfredo Goldman e Fabio Kon (USP); Francisco Pereira Jr., Ivanilton Polato e Rosangela de Fátima Pereira (UTFPR) ERAD/SP – 25 de julho de 2012

Upload: alessandro

Post on 18-Aug-2015

35 views

Category:

Documents


0 download

DESCRIPTION

Apache Hadoop - Daniel Cordeiro - MapReduce - Apache Pig - Linguagem Pig Latin - Apache Mahout

TRANSCRIPT

Apache HadoopApache HadoopConceitos tericos e prticos, evoluoe novas possibilidadesDaniel CordeiroDepartamento de Cincia da ComputaoInstituto de Matemtica e EstatsticaUniversidade de So PauloBaseado no curso apresentado no CSBC12 pelos professoresAlfredo Goldman e Fabio Kon (USP);Francisco Pereira Jr., Ivanilton Polato e Rosangela de Ftima Pereira (UTFPR)ERAD/SP 25 de julho de 2012Apache HadoopIntroduoMotivaoUso potencial em aplicaes BigDataConjuntos de dados na ordem de petabytesComputao intensiva sobre os dadosComputao paralela no trivialDiviso das subtarefasEscalonamento das subtarefasBalanceamento de cargaDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 2 / 88Apache HadoopIntroduoMotivaoApache HadoopHadoop remove a complexidade da computao de altodesempenhoCusto ecienteMquinas comunsRede comumTolerncia a falhas automticaPoucos administradoresFacilidade de usoPoucos programadoresDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 3 / 88Apache HadoopIntroduoHadoopArcabouo para processamento e armazenamento de dados emlarga escala:Cdigo abertoImplementado em JavaInspirado no GFS e MapReduce do GoogleProjeto top-level da Fundao ApacheTecnologia recente, porm j muito utilizadaDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 4 / 88Apache HadoopIntroduoHistrico* http://nutch.apache.org/** http://labs.google.com/papers/mapreduce.htmlhttp://labs.google.com/papers/gfs.htmlDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 5 / 88Apache HadoopIntroduoOrigem (I)2003Google publica artigo do GFS (SOSP03)2004Google publica artigo do MapReduce (OSDI04)2005Doug Cutting cria uma verso do MapReduce para oprojeto Nutch2006Hadoop se torna um subprojeto do Apache LuceneDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 6 / 88Apache HadoopIntroduoOrigem (II)2007Yahoo! Inc. se torna o maior contribuidor e utilizadordo projeto (aglomerado com mais de 1.000 ns)2008Hadoop deixa a tutela do projeto Lucene e setransforma em um projeto top-level da Apache2010Facebook anuncia o maior aglomerado Hadoop domundo (mais de 2.900 ns e 30 petabytes de dados)2011Apache disponibiliza a verso 1.0.0Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 7 / 88Apache HadoopIntroduoQuem utiliza?Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 8 / 88Apache HadoopIntroduoThe New York TimesPublished: May 2, 1892Copyright The New York Timeshttp://open.blogs.nytimes.com/2007/11/01/self-service-prorated-super-computing-fun/Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 9 / 88Apache HadoopIntroduoThe New York TimesEm 2007, o jornal The New York Times converteu para PDFtodos seus os artigos publicados entre 1851 e 1980Cada artigo composto por vrias imagens previamentedigitalizadas que precisavam ser posicionadas eredimensionadas de forma coerente pra a criao do PDFO Hadoop foi utilizado para converter 4 TB de imagens TIFFem 11 milhes de arquivos PDF100 instncias EC2 da Amazon foram utilizadas durante24 horas para gerar 1,5 TB de arquivos PDF, a um custo deaproximadamente US$ 240,00Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 9 / 88Apache HadoopIntroduoOnde o Hadoop utilizado?Soluo para:Data warehouseBusiness intelligenceAplicaes analticasMdias sociaisDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 10 / 88Apache HadoopIntroduoMuitas possibilidades...Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 11 / 88Apache HadoopIntroduoVantagensPor que usar Hadoop?Cdigo abertoEconmicoRobustoEscalvelFoco na regra de negcioDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 12 / 88Apache HadoopIntroduoVantagensVantagem ICdigo AbertoComunidade ativaApoio de grandes corporaesCorrees de erros frequentesConstante evoluo do arcabouoDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 13 / 88Apache HadoopIntroduoVantagensVantagem IIEconmicoSoftware livreUso de mquinas e redes convencionaisAluguel de servios disponveis na nuvem:Amazon Elastic MapReduceGoogle App Engine MapReduceetc.Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 14 / 88Apache HadoopIntroduoVantagensVantagem IIIRobustoSe em 1 mquina h probabilidade de haver falhas...Tempo mdio entre falhas para 1 n: 3 anosTempo mdio entre falhas para 1.000 ns: 1 diaEstratgiasReplicao dos dadosArmazenamento de metadadosDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 15 / 88Apache HadoopIntroduoVantagensVantagem IVEscalvelPermite facilmente adicionar mquinas ao aglomeradoAdio no implica na alterao do cdigo-fonteLimitao apenas relacionada a quantidade de recursosdisponveisDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 16 / 88Apache HadoopIntroduoVantagensVantagem VFoco na regra de negcioHadoop realiza todo o trabalho duroDesenvolvedores podem focar apenas na abstrao doproblemaDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 17 / 88Apache HadoopIntroduoDesvantagensDesvantagensnico n mestrePonto nico de falhaPode impedir o escalonamentoDiculdade das aplicaes paralelasProblemas no paralelizveisProcessamento de arquivos pequenosMuito processamento em um pequeno conjunto de dadosDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 18 / 88Apache HadoopSuposiesSuposies do projeto (I)ProblemasOs dados que sero processados no cabem em um nCada n composto por hardware comumFalhas podem (e iro) acontecerIdeias e solues do Apache HadoopSistema de arquivos distribudoReplicao internaRecuperao de falhas automticaDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 19 / 88Apache HadoopSuposiesSuposies do projeto (II)ProblemasMover dados caro (largura de banda pequena)Mover computao baratoProgramao paralela e distribuda difcilIdeias e solues do Apache HadoopMover a computao para onde esto os dadosEscrever programas que so fceis de se distribuirParalelismo de dados utilizando conceitos de linguagemfuncionalDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 20 / 88Apache HadoopO modelo MapReduceO exemplo clssico: contagem de palavrasWord CountGerar uma lista de frequncia das palavras em um conjunto grandede arquivos: ordem de terabytes!Word CountMinicursos Ha-doop ERAD 2012ERAD 2012 Campinas SPMinicursos ERAD 2012ERAD 2012 em Campinas2012, 4ERAD, 4Campinas, 2em, 1Hadoop, 1Minicursos, 2SP, 1Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 21 / 88Apache HadoopO modelo MapReduceEm um mundo no paraleloAssuma que a mquina tem memria suciente (> 1 TB !)word-count(){for eachdocumentd{for eachwordw ind{w_count[w]++}}savew_counttopersistentstorage}Fcil, mas provavelmente a execuo demorar um longo tempo,pois a entrada da ordem de terabytesDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 22 / 88Apache HadoopO modelo MapReduceEm um mundo paralelo qualquerMutex lock; // protege w_countword-count(){foreachdocumentdinparallel{foreachwordwind{lock.Lock();w_count[w]++lock.Unlock();}}savew_counttopersistentstorage}Problemas:utiliza uma estrutura de dados nica e globalrecursos compartilhados: seo crtica!Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 23 / 88Apache HadoopO modelo MapReduceGoogle MapReduceO modelo inicial proposto pelo Google apresentou conceitospara simplicar alguns problemasParalelizao da computao em um aglomerado de mquinascomuns (com centenas/milhares de CPUs)Paralelizao e distribuio automtica de computao deveriaser o mais simples possvelO sistema de execuo se encarrega de:particionar e distribuir os dados de entradaescalonar as execues em um conjunto de mquinastratar as falhascomunicao entre as mquinasDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 24 / 88Apache HadoopO modelo MapReduceIdeia bsica do MapReduceO modelo de programao paralela MapReduce aborda osproblemas da seguinte forma:1 Leia uma grande quantidade de dados2 Aplique a funo MAP: extrai alguma informao de valor!3 Fase intermediria: Shue & Sort4 Aplique a funo REDUCE: rene, compila, ltra, transforma,etc.5 Grave os resultadosDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 25 / 88Apache HadoopO modelo MapReduceMapReduceA ideia do modelo de programao Map e Reduce no novaPresente em linguagens funcionais h mais de 40 anos!No Hadoop a parte do arcabouo responsvel peloprocessamento distribudo (paralelo) de grandes conjuntos dedadosUsa padres j conhecidos:cat | grep | sort | uniq > arquivoentrada | map | shue | reduce > sadaDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 26 / 88Apache HadoopO modelo MapReduceA natureza do MapMap em programao funcionalmap({1,2,3,4},(2))->{2,4,6,8}Todos os elementos so processados por um mtodo e os elementosno afetam uns aos outros.Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 27 / 88Apache HadoopO modelo MapReduceA natureza do ReduceReduce em programao funcionalreduce({1,2,3,4},())->{24}Todos os elementos da lista so processados juntosTanto em Map quanto em Reduce: a entrada xa(imutvel), e a sada uma nova lista (em geral)Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 28 / 88Apache HadoopO modelo MapReduceO modelo implementadoO modelo MapReduce adequado para trabalhar com grandesquantidades de dadosRealiza computao sobre os dados (pouca movimentao dedados)Os dados so compartilhados atravs de um sistema dearquivos distribudoDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 29 / 88Apache HadoopO modelo MapReduceMapReduce no HadoopA funo Map atua sobre um conjunto de entrada com chavese valores, produzindo uma lista de chaves e valoresA funo Reduce atua sobre os valores intermediriosproduzidos pelo Map para, normalmente, agrupar os valores eproduzir a sadaEntrada Sadamap lista()reduce lista()Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 30 / 88Apache HadoopO modelo MapReduceDe volta ao exemplo do Word CountL arquivos texto e conta a frequncia das palavrasEntrada: arquivos textoSada: arquivo textoCada linha: palavra, separador (tab), quantidadeMap: gera pares (palavra, quantidade)Reduce: para cada palavra, soma as quantidadesDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 31 / 88Apache HadoopO modelo MapReduceWord Count (pseudo-cdigo)map(Stringkey,Stringvalue)://key:documentname//value:documentcontentsforeachwordwinvalue:EmitIntermediate(w,"1");reduce(Stringkey,Iteratorvalues)://key:aword//value:alistofcountsintresult=0;foreachvinvalues:result+=ParseInt(v);Emit(key,AsString(result));Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 32 / 88Apache HadoopO modelo MapReduceExecuo do Word Count(2012, [2,2])(Campinas, [1,1])(em,[1,0])(ERAD, [2,2])(Hadoop, [0,1])(Minicursos, [1,1])(SP, [0,1])(2012, 4)(Campinas, 2)(em, 1)(ERAD, 4)(Hadoop,1)(Minicursos, 2)(SP, 1)2012, 4Campinas, 2em, 1ERAD, 4Hadoop,1Minicursos, 2SP, 1(Minicursos, 1)(ERAD, 2)(2012, 2)(em, 1)(Campinas, 1)(Minicursos, 1)(Hadoop, 1)(ERAD, 2)(2012,2)(Campinas, 1)(SP, 1)Minicursos ERAD2012 ERAD 2012em CampinasMinicursosHadoop ERAD2012 ERAD 2012Campinas SPentrada1.txtentrada2.txtEntradaMapperShue Reducer SadaDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 33 / 88Apache HadoopO modelo MapReduceOutros exemplos: GrepProcura nos arquivos de entrada por um dado padroMap: emite uma linha se um padro encontradoReduce: copia os resultados para a sadaDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 34 / 88Apache HadoopO modelo MapReduceIlustrando o Grepcat | grep | sort | uniq > arquivoentrada | map | shue | reduce > sadaDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 35 / 88Apache HadoopO modelo MapReduceOutros exemplos: ndice InvertidoGerar o ndice invertido das palavras de um conjunto dearquivos dadoMap: faz a anlise dos documentos e gera pares de (palavra,docId)Reduce: recebe todos os pares de uma palavra, organiza osvalores docId, e gera um par (palavra, lista(docId))Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 36 / 88Apache HadoopO modelo MapReduceIlustrando o ndice Invertidohamlet.txt12th.txtto be ornot to bebe not afraidof greatnessto, hamlet.txtbe, hamlet.txtor, hamlet.txtnot, hamlet.txtbe, 12th.txtnot, 12th.txtafraid, 12th.txtof, 12th.txtgreatness, 12th.txtafraid, (12th.txt)be, (12th.txt, hamlet.txt)greatness, (12th.txt)not, (12th.txt, hamlet.txt)of, (12th.txt)or, (hamlet.txt)to, (hamlet.txt)sada.txtDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 37 / 88Apache HadoopSubprojetos do HadoopHadoop CommonHadoop MapReduceHadoop Distributed File System (HDFS)Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 38 / 88Apache HadoopO Hadoop CommonO Hadoop Common oculta o que os usurios comuns no precisamsaber!Paralelizao automticaBalanceamento de cargaOtimizao nas transferncias de disco e redeTratamento de falhasRobustezEscalabilidadeDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 39 / 88Apache HadoopOutros projetos Apache relacionadosAvroseriao de dados e chamada a procedimentosremotos (Remote Procedure Call )Cassandrabanco de dados NoSQL, tuplas Chukwamonitoramento e coleta de dados de sistemasdistribudosHBasebanco de dados no-relacional distribudo e escalvel(baseado no Google Bigtable)Hiveinfraestrutura de data warehouse(relacional,SQL-like)Mahout biblioteca para machine learninge data miningPigplataforma de anlise de dados e linguagem de uxode dados (Pig Latin)ZooKeeper coordenao de servios distribudos (conguraes,nomes, sincronizao, etc.)Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 40 / 88Apache HadoopA pilha de software do HadoopDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 41 / 88Apache HadoopComponentes do HadoopComponentes do HadoopN MestreNameNodeSecondaryNameNodeJobTrackerNs EscravosDataNodeTaskTrackerDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 42 / 88Apache HadoopComponentes do HadoopNameNodeGerencia os metadados dos arquivosFSImage (checkpointing) e EditLog (lista das operaes)Controla a localizao das rplicasEncaminha os blocos aos ns escravosMantm as informaes em memriaDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 43 / 88Apache HadoopComponentes do HadoopDataNodeRealiza o armazenamento dos dadosPermite armazenar diversos blocosDeve se comunicar com o NameNodeDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 44 / 88Apache HadoopComponentes do HadoopSecondaryNameNodeN auxiliar do HDFSRealiza pontos de checagem em intervalos pr-denidosPermite manter o nvel de desempenho do NameNodeDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 45 / 88Apache HadoopComponentes do HadoopJobTrackerGerencia o plano de execuo de tarefas MapReduceDesigna as tarefas aos ns escravosMonitora a execuo das tarefas para agir em caso de falhasDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 46 / 88Apache HadoopComponentes do HadoopTaskTrackerRealiza o processamento das tarefas MapReduceCada n escravo possui uma nica instnciaDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 47 / 88Apache HadoopComponentes do HadoopResumindo...Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 48 / 88Apache HadoopComponentes do HadoopNameNode e DataNodes no HDFSFonte: Evert Lammers (SARA.nl)NameNode (NN)Gerencia o namespacedo sistemade arquivosMapeia nomes de arquivos parablocosMapeia blocos para DataNodesGerencia replicaoDataNode (DN)Armazena dados no sistemade arquivos localMantm informaes parachecar integridade dosblocos (CRC)Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 49 / 88Apache HadoopComponentes do HadoopJobTracker e TaskTrackers no MapReduceFonte: Evert Lammers (SARA.nl)JobTracker (JT)Controla os metadadosstatus de um jobstatus de tasksnos TTsDecide como ser oescalonamentoTaskTrackers (TT)Solicita trabalho no JTbusca cdigo para executar do DFSaplica conguraes especcas nosjobsComunicam-se com o JT nas tasksenviam sadas, sinais, atualizaes ...Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 50 / 88Apache HadoopRodando o HadoopFormas de execuoLocalPseudo-distribudaCompletamente distribudaDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 51 / 88Apache HadoopRodando o HadoopFormas de execuoExecuo local:Congurao padroRecomendvel para a fase de desenvolvimento e testesAplicao executada na mquina localDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 52 / 88Apache HadoopRodando o HadoopFormas de execuoExecuo pseudo-distribuda:Clusterde uma mquina sCongurao similar do processamento em um cluster...... porm, o processamento continua sendo executado namquina localDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 53 / 88Apache HadoopRodando o HadoopFormas de execuoExecuo completamente distribuda:Processamento real de uma aplicao HadoopDeve indicar quais mquinas iro efetivamente executar oscomponentes HadoopDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 54 / 88Apache HadoopRodando o HadoopExecuo de tarefas MapReduce no HadoopDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 55 / 88Apache HadoopRodando o HadoopDemoDemo do Word CountDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 56 / 88Apache HadoopHDFSHDFSCaractersticasSistema de arquivos distribudoArquitetura Mestre/EscravoInspirado no Google FileSystem (GFS)Daniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 57 / 88Apache HadoopHDFSCaractersticasImplementado em JavaArmazenamento de grandes volumes de dadosRecuperao de dados transparente para o usurioDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 58 / 88Apache HadoopHDFSDiviso em blocosDisco rgido pode no suportar o tamanho de um arquivoprincipalmente em solues BigDataHDFS divide os arquivos em blocos de mesmo tamanho64 MB por padroDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 59 / 88Apache HadoopHDFSReplicao de dados3 rplicas (em geral) para cada blocoaumento de segurana e disponibilidadeCada rplica em um n diferente2 em um mesmo rackde rede e 1 em um rackdiferenteRe-replicaopara o caso de uma rplica se tornar corrompidaDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 60 / 88Apache HadoopHDFSExemploDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 61 / 88Apache HadoopApache PigApache PigDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 62 / 88Apache HadoopApache PigO que o Apache Pig?O Apache Pig uma plataforma para a anlise de grandesquantidades de dados composta por:uma linguagem de alto-nvel para expressar programas deanlise de dados (Pig Latin)e uma infra-estrutura para a execuo desses programasA plataforma gera, otimiza e compila automaticamenteprogramas MapReduce em tempo de execuoDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 63 / 88Apache HadoopApache PigMotivao com um exemploProblema:Suponha que voc tenha dadosdos seus usurios em um arquivo,logsde acesso a sitesem outro, evoc quer saber quais so os 5sites mais visitados por usurioscom idades entre 18 e 25 anos.Filtrar por idade Ler pginasLer usuriosJuno por nomeAgrupar por URLContar visitasOrdenar por nmerode visitasPegar as 5 primeirasDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 64 / 88Apache HadoopApache PigCdigo em MapReduceDaniel Cordeiro (IME/USP) [email protected] ERAD/SP 25 de julho de 2012 65 / 88Apache HadoopApache PigMesmo cdigo em Pig LatinUsers =load usersas (name, age);Fltrd =filter Usersbyage >= 18and age