Na postagem anterior, instalamos o Hadoop que é uma plataforma para o fornecimento de armazenamento distribuído e capacidades computacionais. O Hadoop foi concebido para corrigir o problema de escalabilidade que existia na Nutch um pesquisador e rastreador de código aberto. Nessa época a Google havia publicado diversos artigos que descreviam um problema com o sistema de arquivos distribuídos, o GFS (Google File System) e o MapReduce, uma estrutura computacional para o processamento em paralelo.
A implementação bem sucedida desses papéis do Nutch resultou em dois projetos separados, o segundo se tornou o Hadoop, e foi criado como um projeto da Apache.
Componentes do Hadoop
HDFS é o componente de armazenagem de Hadoop. Um sistema de arquivos distribuído é modelado com base no GFS. HDFS é otimizado para um alto rendimento e funciona melhor quando a leitura/escrita e realizada em arquivos grandes (gigabytes e maiores). Para suportar esta transferência o HDFS aproveita grandes (para um sistema de arquivos) tamanhos de bloco e otimizações pesquisa de dados para reduzir o I/O de rede.
Escalabilidade e disponibilidade são também características chaves do HDFS, conseguida em parte devido à replicação dos dados e da tolerância a falhas. HDFS é tolerante a falhas de software e hardware, e automaticamente replica os blocos de dados dos nós que falharam.
MapReduce é um framework de computação distribuídos baseada em lote (batch). Permite paralelizar o trabalho ao longo de uma grande quantidade de dados brutos, tais como combinar web logs com dados relacionais de um banco de dados OLTP para o modelo como os usuários interagem com o site. Este tipo de trabalho poderia levar vários dias ao utilizar as técnicas convencionais de programação em série, porém, é reduzido a poucos minutos.
O modelo MapReduce simplifica o processamento em paralelo ao abstrair as complexidades envolvidas no trabalho com sistemas distribuídos, como a paralelização computacional, a distribuição do trabalho e ao lidar com hardware/software confiáveis. Com essa abstração, o MapReduce permite que o programador se concentre em atender às necessidades de negócios, ao invés de perder tempo em complicações de um sistema distribuído.
Arquivos de Configuração do Hadoop
- hadoop-env.sh - configurações específicas do ambiente. Na instalação configuramos o JAVA_HOME. Também podemos especificar opções da JVM para vários componentes do Hadoop, personalizar os diretórios e os locais dos arquivos do master e dos slaves.
- core-site.xml - contém os itens de configuração do Hadoop ao nível do sistema, como a URL do HDFS, o diretório temporário e os locais de script de suporte de reconhecimento de clusters.
- hdfs-site.xml - configurações como o total de replicação de arquivos, tamanho do bloco, e quais permissões são aplicadas.
- mapred-site.xml - configurações como o número padrão para a redução de tarefas, padrão mínimo/máximo de tamanhos de memória e execução especulativa.
- masters - lista com os hosts que estão no servidor. Devemos ter cuidado pois ao iniciar o Hadoop é lançado o NameNode e JobTracker no host local a partir do qual emitimos o start, e em seguida o SSH para todos os nós que estão neste arquivo para iniciar um SecondaryNameNode.
- slaves - lista com os hosts que são escravos do Hadoop. Ao iniciar o Hadoop é localizado o SSH de cada host neste arquivo e lançado os DataNode e TaskTracker daemons.
Agora que já entendemos o que é o Hadoop e como funciona seu mecanismo podemos partir para novas atividades em breve.
Obrigado e até a próximaFernando Anselmo
PS.
Conheça mais sobre o GFS em http://research.google.com/archive/gfs.html.
Conheça mais sobre o MapReduce em http://research.google.com/archive/
mapreduce.html.
0 comentários:
Postar um comentário