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.
Outros projetos relacionados com o Hadoop:
- 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.
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
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.
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