Fase I - Conceito
Título da Idéia
Hadoop - Sistemas Distribuídos
Objetivos
Estudar, implementar e avaliar utilização da ferramenta para as seguintes funcionalidades:
- File system distribuído
- Repositório de dados (BD, DW, ...)
- Processamento paralelo com MapReduce
Conceito
O Hadoop é um projeto da Apache Foundation para o desenvolvimento de ferramentas para computação distribuída e que inclui os seguintes sub-projetos:
- Hadoop Common: Programas que dão suporte aos demais subprojetos do Hadoop.
- HDFS: É um sistema de arquivos distribuídos que provê um alto throughput no accesso aos dados de aplicações.
- MapReduce: É um framework para a distribuição do processamento de grandes volumes de dados em clusters de computadores.
Other Hadoop-related projects at Apache include:
- Avro: Sistema de serialização de dados.
- Chukwa: A data collection system for managing large distributed systems.
- HBase: A scalable, distributed database that supports structured data storage for large tables.
- Hive: A data warehouse infrastructure that provides data summarization and ad hoc querying.
- Mahout: A Scalable machine learning and data mining library.
- Pig: Linguagem de fluxo de dados de alto nível e framework de execução para computação paralela.
- ZooKeeper: Serviço de coordenação de alta performance para aplicações distribuídas.
Site oficial: http://hadoop.apache.org/
Apresentação muito boa e simples para entender o funcionamento do Hadoop : http://stllambdalounge.files.wordpress.com/2009/10/twheeler-hadoop-20091001-handouts.pdf
Características
Hadoop é uma ferramenta (java!) para lidar com grandes quantidades de dados: terabytes ( 1TB = 1024GB ), petabytes ( 1PB = 1024TB ), ...
É composta por dois módulos: HDFS e MapReduce
HDFS (Hadoop Distributed File System) é o sistema de armazenamento baseado num sistema de arquivos próprio e distribuído.
- Tolerante a falhas
- Alto throughput
- Write-once-read-many - baixo controle de concorrência
- Mantém a lógica de processamento próxima aos dados ao invés de movê-la para o espaço de aplicação
- Recuperação automática e rápida de falhas
- Commodity hardware - nós do cluster podem ser personal computers
- Escalabilidade
- Confiabilidade
- Formas de acesso: API (Java, C), Command Shell, Web application for browsing data, mount over NFS, WebDAV, REST API, HttpFS
MapReduce (YARN ou NextGen MapReduce) é um modelo de programação para escrita de aplicações que rapidamente processam grandes quantidades de dados em paralelo.
- Executa sobre dados armazenados, por exemplo, no HDFS, Cassandra e MongoDB
- Ferramentas como Pig, Hive, Avro utilizam MapReduce em seus algoritmos de processamento
Fase II - Ensino
Conteúdo
Bibliografia
- Hadoop: The Definitive Guide, Second Edition By Tom White
Publisher: O'Reilly Media Released: September 2010 Pages: 624
- Pro Hadoop By Jason Venner
Publisher: Apress : Published Jun 2009: Pages: 440
Apresentações e Documentos
- Welcome to Hadoop World
- HDFS - Behind the scenes
- Hadoop Architecture and its Usage at Facebook
- Large scale data storage and processing for scientist with hadoop
Artigos
- Apache hadoop goes realtime at Facebook (http://borthakur.com/ftp/RealtimeHadoopSigmod2011.pdf)
- Apache hadoop performance-tuning methodologies and best practices (http://dl.acm.org/citation.cfm?id=2188323)
- Oracle in-database hadoop: when mapreduce meets RDBMS (http://cs.yale.edu/homes/xs45/pdf/ss-sigmod2012.pdf)
- More convenient more overhead: the performance evaluation of Hadoop streaming (http://dl.acm.org/citation.cfm?id=2103444)
- SciHadoop: Array-based Query Processing in Hadoop (http://users.soe.ucsc.edu/~carlosm/Papers/buck-sc11.pdf)
Vídeos
- What is Hadoop? http://www.youtube.com/watch?feature=player_detailpage&v=RQr0qd8gxW8
- Big Ideas: Demystifying Hadoop: http://www.youtube.com/watch?feature=player_detailpage&v=XtLXPLb6EXs
Apresentação
Treinamento realizado em 28/06/2012: Logs, Monitoramento e Estatísticas - uma Abordagem sobre Ferramentas
Fase III - Exemplo de Caso de Negócio
Benefício para a Algar Telecom
- Redução de custos: os datanodes do Hadoop são máquinas comuns (commodity machines)
- Geração de receitas: armazenamento e análise de mais dados na base significa maior conhecimento sobre o cliente. É possível agregar valor ao negócio se soubermos prever os comportamentos de nossos clientes e plataformas.
- Inovação: ferramenta base de uma plataforma de "Big Data"
Benefícios para o cliente
- Novos serviços: com a tendência de armazenar grande volume de dados, é possível extrair conhecimento desses dados armazenados. O cliente ganha com produtos mais personalizados, úteis e inovadores.
- Novos serviços: integração com dados de redes sociais
Direcionadores chave para esta iniciativa
- Inovação em Plataformas
- Redução de custos, já que trata-se de uma ferramenta open-source
- Grande base de dados (big data) que pode ser utilizada para extração de informações como: relatórios, mineração de dados para prever comportamento do cliente, agregando valor ao negócio
Possíveis modelos de negócios
- Ferramenta base para criação de uma plataforma de Big Data
- Pode substituir o DW da CTBC
- Pode coexistir com plataformas já existentes, armazenando e processando dados não estruturados
- Pode ser a base para um núcleo de pesquisa acadêmica dentro da Algar Telecom. Como o Hadoop é uma ferramenta relativamente nova, que traz grande quantidade de novos conceitos, um ponto de partida interessante pode ser desenvolvermos pesquisa (algoritmos, business case) sobre a ferramenta, resultando em publicações de artigos científicos.
Business Case
Caso de negócio 1: Plataforma de Big Data
O Hadoop é definitivamente a ferramenta base para uma plataforma de Big Data.
Quando falamos em Big Data na CTBC, falamos de negócios do tipo: DW (data warehouse), CDRs (call detail records), sistemas para Internet como o Coreo, sistemas para redes sociais, bases de dados de clientes, etc..
Lembrando que "sozinho", o Hadoop não é uma ferramenta produtiva para desenvolvimento, mas atualmente existe uma suite de ferramentas que abstraem suas camadas e que se encaixariam numa "Plataforma de Big Data". São elas: HBase, Hive, Zookeeper, Pig, Sqoop ...
Exemplos de plataformas de Big Data que têm como base o Hadoop: IBM Big Data Platform, Oracle Big Data Platform, Talend Big Data Platform, ...
Assim, esse caso de negócio dentro do P&D do Hadoop é apenas uma pontapé para a montagem de uma plataforma flexível e coesa com os requisitos que a Algar Telecom venha a elicitar nos futuros sistemas. Não vemos a CTBC utilizando uma dessas plataformas acima. Vemos um caso de negócio no qual o CDS deve construir sua própria solução, tendo como base o Hadoop, de acordo com o sistema a ser desenvolvido.
Caso de negócio 2: Mineração de Dados não Estruturados
A mineração de dados não estruturados na Algar Telecom pode acontecer sob duas perspectivas principais: (1) desenvolvimento de pesquisa científica dentro do núcleo de P&D do CDS e (2) desenvolvimento de algoritmos que mineram a base de dados de clientes da CTBC. Acreditamos que a segunda perspectiva seja consequência da primeira. É um assunto muito interessante e em alta no meio acadêmico, que pode ser muito enriquecida com testes em bases de dados reais de clientes CTBC ou mesmo em dados de redes sociais.
Fase IV - Protótipo orientado ao Negócio
Escopo
Protótipo desenvolvido:
- API Java de acesso ao HDFS com operações de leitura/escrita
- Algoritmo MapReduce para realizar uma operação de contar palavras sobre uma base de 1TB
Limitações
O PoC desenvolvido foi apenas um primeiro passo com a ferramenta Hadoop. Uma limitação é a dificuldade de desenvolver algoritmos mapreduce. Porém, futuros P&Ds sobre ferramentas que abstraem esse algoritmo podem ser integrados neste PoC.
Hadoop Myths Debunked
Em resposta ao POST na Forbes : http://www.forbes.com/sites/danwoods/2012/07/27/how-to-avoid-a-hadoop-hangover/
Post original : http://www.ibmbigdatahub.com/blog/hadoop-myths-debunked
August 20, 2012
Hadoop has acquired a large body of prevailing myths in its short history as the hottest new big data technology. I'm surprised and dismayed when I see these myths propagated in leading business publications, such as in this recent Forbes article. Here now are some quick debunks of the myths in this particular piece that got my goat:
Hadoop Myth #1: Hadoop is primarily for batch processing.
Far from it. Hadoop is being used for the full spectrum of advanced analytics, both batch and real-time, against structured and unstructured data. It has a database (Hbase), an analytics environment (MapReduce, Hive, Mahout, etc.), and visualization tools (IBM InfoSphere BigInsights being one of many on the market). Taken together, the entire Hadoop stack, which is mostly open-source Apache with, optionally, various proprietary vendor tools/apps/libraries/accelerators, provide the foundation for complete applications.
Hadoop Myth #2: Hadoop has a computational model called "MapReduce."
MapReduce is not a computational (i.e, statistical) model. Rather, MapReduce is a modeling/abstraction framework and runtime environment for in-database execution of a wide range of data analytic functions in a massively parallel computing fabric, which may be entirely centralized on a single central computing hub/cluster/server (which may be highly efficient for some jobs) or spread out across a huge distributed cluster of machines (which may be best for others).
Hadoop Myth #3: Hadoop is synonymous with HDFS and vice versa.
At its heart, Apache Hadoop is an open-source community that has multiple subprojects (MapReduce, Hadoop Distributed File System (HDFS), Hbase, Hive, Pig, Mahout, etc.–the list continues to grow), has spawned an ecosystem and solution market, one of whose participants is IBM (with InfoSphere BigInsights). Many industry observers seem to assume (but rarely state outright) that Hadoop is HDFS and HDFS is Hadoop. But that's absurd. The core and defining subproject is MapReduce, not HDFS. There are plenty of Hadoop deployments that don't involve HDFS (or have built alternatives that use the HDFS API), but not a single one that does not involve MapReduce (without which it would not qualify as Hadoop).
Hadoop Myth #4: Hadoop is the first successful big data technology.
The first successful big data technology was enterprise data warehouses that implement massively parallel processing, scale to the petabytes, handle batch and real-time latencies with equal agility, and provide connectors to structured and unstructured sources. In other words, platforms like IBM Netezza and IBM Smart Analytics System have been doing big data (according to the 3 Vs and overlapping considerably with Hadoop in use cases/apps supported) for several years. Before the commercial Hadoop arena (which got going in earnest only a year ago) got off its feet.
Hadoop Myth #5: Hadoop is the commoditized, back-end, bare bottom of the big data analytics stack.
Hadoop is not the bottom of the stack. Hadoop is in fact a full stack that is growing fuller all the time, both at the Apache community level and in vendor (e.g., IBM) productization. In fact, Hadoop is an evolving solution platform, just as an EDW is a solution platform. In fact, Hadoop is the very heart of the big data revolution and is the core of the next-generation EDW in the cloud.
Hadoop Myth #6: Hadoop is not a database.
See comment above re HBase. Also, Cassandra, a real-time distributed database with transactional features, is a Hadoop subproject. And HDFS, a distributed file system, supports the data persistence/storage features that make it a key database-like platform in Hadoop. A big part of Hadoop's flexibility is the ability to dispense with these databases and file systems, if you wish, and run MapReduce (the core of Hadoop) over non-Hadoop databases, such as Netezza, MySQL, etc.
Hadoop Myth #7: Hadoop is hard to set up, use and maintain.
Sure. The technology, market and solutions are maturing, and skills are in short supply. But it's maturing so fast, and we and others are doing great things on improving usability with every product release.
Hadoop Myth #8: Only savvy Silicon Valley engineers can derive value from Hadoop.
Wrong. There are a growing number of Hadoop case studies in other regions, in other industries.
PoC
O projeto desenvolvido é: hdfs-api (http://10.32.255.5/repos/PeD/hadoop/hdfs-api/)
Detalhamento Técnico
Foi desenvolvida uma api de acesso ao file system do hadoop, com suporte às operações: copyFromLocal, copyFromHdfs e open O algoritmo mapreduce é um exemplo da utilização dessa api.
Cronograma Macro
- 01/06/2012
Início do P&D
- 28/06/2012
Realização de treinamento abordando assunto
- 16/07/2012
Fase I completa
- 30/07/2012
Fase II completa
- 13/08/2012
Fase III completa
27/08/201224/12/2012
Fase IV completa
30/08/201229/12/2012
Conclusão do P&D
Histórico
- 25/06/2012
Atualização da documentação na Wiki
- 28/06/2012
Treinamento realizado abordando o assunto.
- 19/07/2012
Atualizações na Fase I: objetivos e conceitos.
- 30/07/2012
Atualizações na Fase I: conceitos.
- 06/08/2012
Atualizações na Fase II
- 17/08/2012
Finalização das Fases I e II
- 27/08/2012
Pesquisas gerais sobre o tema
- 10/09/2012
Pesquisas gerais sobre o tema
- 24/09/2012
P&D não avançou nas últimas semanas
- 08/10/2012
P&D não avançou nas últimas semanas
- 22/10/2012
Edição da Fase III
- 08/11/2012
Definição e início da implementação do protótipo
- 03/12/2012
Avanços na implementação do protótipo
- 10/12/2012
Avanços na implementação do protótipo
- 17/12/2012
Avanços na implementação do protótipo
- 27/12/2012
Conclusão do P&D
Pesquisadores
- Hélvio Pereira de Freitas
- Fabíola Souza Fernandes Pereira