Sem resumo de edição |
|||
| (4 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 3: | Linha 3: | ||
<center>[[Arquivo:hadoop-logo.jpg]]</center> | <center>[[Arquivo:hadoop-logo.jpg]]</center> | ||
<br> | <br> | ||
[[Arquivo:Apresentação.pdf]] | |||
<div align="justify"> | <div align="justify"> | ||
| Linha 92: | Linha 96: | ||
<center>[[Arquivo:hadoop.jpg]]</center> | <center>[[Arquivo:hadoop.jpg]]</center> | ||
<br> | |||
* Hadoop não é um Sistema de Banco de Dados, é mais próximo de um sistema de armazenamento de dados, por isso é necessário um sistema como o MapReduce para realizar o processamento desses dados. | |||
<br> | <br> | ||
| Linha 104: | Linha 111: | ||
** Utilizando um Raspberry PI o tempo de processamento foi de 9:19 minutos; | ** Utilizando um Raspberry PI o tempo de processamento foi de 9:19 minutos; | ||
** Após várias configurações, utilizando três Raspberry PI o tempo de processamento foi de 5:26. | ** Após várias configurações, utilizando três Raspberry PI o tempo de processamento foi de 5:26. | ||
= Referências = | = Referências = | ||
| Linha 118: | Linha 126: | ||
** [http://readwrite.com/2011/01/16/when-should-you-use-hadoop Quando usar Hadoop] | ** [http://readwrite.com/2011/01/16/when-should-you-use-hadoop Quando usar Hadoop] | ||
** [http://www.widriksson.com/raspberry-pi-hadoop-cluster/ Utilização de Hadoop com baixo custo] | ** [http://www.widriksson.com/raspberry-pi-hadoop-cluster/ Utilização de Hadoop com baixo custo] | ||
= Discussão = | |||
== 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. | |||
<br> | |||
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. | |||
<br> | |||
== 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''' | |||
<br> '''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 | |||
<br> | |||
'''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 | |||
<br> | |||
== 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: [http://www-01.ibm.com/software/data/bigdata/enterprise.html IBM Big Data Platform], [http://www.oracle.com/us/technologies/big-data/index.html Oracle Big Data Platform], [http://www.talend.com/products/big-data 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. | |||
<br> | |||
'''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. | |||
<br> | |||
<br> | |||
<br> | |||
== Bibliografia == | |||
<br>'''''' | |||
* 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 <br><br> | |||
'''Apresentações e Documentos<br>''' | |||
*[http://www.slideshare.net/cloudera/hw09-welcome-to-hadoop-world Welcome to Hadoop World] | |||
*[http://www.slideshare.net/NitinKhattar/hdf-11802019 HDFS - Behind the scenes] | |||
*[http://borthakur.com/ftp/hadoopmicrosoft.pdf Hadoop Architecture and its Usage at Facebook] | |||
*[http://www.slideshare.net/evertlammerts/largescal-data-storage-and-processing-for-scientists-with-hadoop Large scale data storage and processing for scientist with hadoop] | |||
<br> | |||
'''Artigos''' | |||
*Apache hadoop goes realtime at Facebook ([http://borthakur.com/ftp/RealtimeHadoopSigmod2011.pdf http://borthakur.com/ftp/RealtimeHadoopSigmod2011.pdf]) | |||
*Apache hadoop performance-tuning methodologies and best practices ([http://dl.acm.org/citation.cfm?id=2188323 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 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 http://dl.acm.org/citation.cfm?id=2103444])<br> | |||
*SciHadoop: Array-based Query Processing in Hadoop ([http://users.soe.ucsc.edu/~carlosm/Papers/buck-sc11.pdf http://users.soe.ucsc.edu/~carlosm/Papers/buck-sc11.pdf]) | |||
<br> | |||
'''Vídeos''' | |||
*What is Hadoop? [http://www.youtube.com/watch?feature=player_detailpage&v=RQr0qd8gxW8 http://www.youtube.com/watch?feature=player_detailpage&v=RQr0qd8gxW8] | |||
*Big Ideas: Demystifying Hadoop: [http://www.youtube.com/watch?feature=player_detailpage&v=XtLXPLb6EXs http://www.youtube.com/watch?feature=player_detailpage&v=XtLXPLb6EXs]<br> | |||
| |||
Edição atual tal como às 15h52min de 8 de junho de 2015
Hadoop

Segundo [1] você não pode ter uma longa conversa sobre Big Data[2] sem que um elefante entre na sala: Hadoop.
Hadoop é uma plataforma open source mantida pela Apache Software Foundation que tem se mostrado muito útil tanto no armazenamento quanto no processamento de grandes volumes de dados, de forma barata e eficiente.
O Projeto é mantido pela Apache, porém conta com a colaboração de várias grandes empresas, entre elas: Yahoo, Facebook, Google e IBM[3].
Basicamente Hadoop é uma forma de armazenar grandes quantidades de dados distribuídos em máquinas distintas e, em seguida, distribuir também o processamento desses dados em cada máquina.
- Descrição da Apache em relação ao Hadoop:
- É um Framework que permite o processamento distribuído de grandes quantidades de dados em clusters utilizando modelos de programação simples;
- Foi projetado para trabalhar desde uma única máquina a várias, cada uma delas oferecendo armazenamento e processamento próprios;
- A Biblioteca em si foi projetada para detectar e lidar com falhas, fornecendo alta disponibilidade.
- O Hadoop é tido como uma solução adequada para Big Data por vários motivos:
- É um projeto open source, como já informado, fato que permite a sua modificação para fins de customização e o torna suscetível a melhorias constantes graças à sua rede de colaboração. Por causa desta característica, vários projetos derivados ou complementares foram - e ainda são - criados;
- Proporciona economia, já que não exige o pagamento de licenças e suporta hardware convencional, permitindo a criação de projetos com máquinas consideravelmente mais baratas;
- O Hadoop conta, por padrão, com recursos de tolerância a falhas, como replicação de dados;
- O Hadoop é escalável: havendo necessidade de processamento para suportar maior quantidade de dados, é possível acrescentar computadores sem necessidade de realizar reconfigurações complexas no sistema.
Hadoop é baseado em duas partes principais, um sistema de arquivo HDFS (Hadoop Distributed File System) e o sistema para distribuir o processamento MapReduce.
Hadoop DFS
- Otimizado para processamento em lote;
- Arquivos são quebrados em Blocos;
- Blocos são distribuídos em Nós;
- Os Blocos de um Arquivo são acessados diretamente nos Nós, aumentando a velocidade de acesso;
- HDFS dividido em:
- NameNode:
- Gerencia o sistema de arquivos, mapeando os Arquivos em Blocos e os Blocos nos DataNodes;
- Gerencia a replicação.
- DataNode:
- É um servidor de Blocos;
- Facilita o pipeline para outros DN`s.
- NameNode:

Hadoop MapReduce
- É útil para processamento e análise de grande quantidade de dados;
- Utiliza os Blocos armazenados nos DN`s;
- Manipula o paralelismo.
- Se ouve mais sobre MapReduce no que HDFS em relação ao Hadoop, por dois motivos:
- É a ferramenta que realmente processa os dados;
- As pessoas ficam fascinadas quando trabalham com isso.
- O MapReduce realiza vários trabalhos, cada qual com uma aplicação separada, que entra nos dados e retira informações conforme necessário.
- Utilizando MapReduce ao invés de comandos, como no SQL, aumenta a complexidade porém dá mais poder pra quem os processa.
- Existem ferramentas que diminuem a complexidade, é o caso do Hive[4] também da apache, que ajuda a converter linguagens de comando para trabalhos em MapReduce.
- Dividido em:
- JobTracker:
- Conhece os dados dos Trabalhos sendo realizados, status do trabalho e das tarefas rodando nos TaskTracker;
- Decide como será o cronograma dos trabalhos.
- TaskTracker:
- Realiza os trabalhos do JT;
- Comunica-se com o JT sobre as tarefas;
- JobTracker:

Conclusão
- O Hadoop fornece[5]:
- Um sistema de arquivos distribuído (HDFS) que armazena os dados em vários servidores;
- Um meio de realizar tarefas (MapReduce) entre esses servidores;
- rodando todo o trabalho próximo aos dados.

- Hadoop não é um Sistema de Banco de Dados, é mais próximo de um sistema de armazenamento de dados, por isso é necessário um sistema como o MapReduce para realizar o processamento desses dados.
- O que o Hadoop não é [6], não é um substituto para um banco de dados, o MapReduce nem sempre é o mais eficiente, entre outros.
Utilização de Hadoop com baixo custo[7]
- Raspberry PI:
- Computador de baixo custo, US$ 35,00, 512 MB Ram, 700 Mhz.
- Teste feito com um arquivo de texto de 35MB:
- Utilizando um Raspberry PI o tempo de processamento foi de 9:19 minutos;
- Após várias configurações, utilizando três Raspberry PI o tempo de processamento foi de 5:26.
Referências
- Material filtrado da Internet:
- Sites:
Discussão
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