Hadoop Hdfs

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 15

Hadoop - HDFS

Universidade Federal de Goiás


Ciência da Computação
O que é Hadoop?
Um framework para lidar com aplicações distribuídas que
fazem uso massivo de dados

Originalmente construído para a distribuição do projeto do


motor web Apache Nutch

Permite aplicações a trabalharem com milhares de nós em


cluster

Dados na escala dos Petabytes

Implementa o paradigma Map/Reduce

Open Source, Escrito em Java


O que é o HDFS?

Sistema de arquivos distribuído


Alta tolerância a falhas
Projetado para hardware de baixo custo
Provê alta vazão de dados
Escalável
Portável
Baseado no Google File System

Faz parte do pacote Hadoop Common


Pra que serve?

Sistema primário de armazenamento usado pelas


aplicações do Hadoop

Também pode funcionar como um sistema de arquivos


distribuído de propósito "geral", levando em consideração
suas peculiaridades

Arquivos muito grandes são quebrados em pedaços


menores e armazenados em diferentes nós
Quem utiliza:

- Facebook
- Adobe
- EBay
- Google
- IBM
- ImageShack
- Last.fm
- LinkedIN

Apenas alguns dentre vários outros grandes nomes


Conceitos
Write once, read many

Tolerância a falhas de Hardware

Acesso aos dados por streaming

Grandes conjuntos de dados

Modelo de coerência simples

"Mover o processamento é mais barato que mover os dados"

Portabilidade entre hardware e software heterogêneos


Funcionalidades

Permissões e autenticação
Rack Awareness
Modo de segurança
fsck()
Balanceador
Atualização e rollback de dados
Nós de checkpoint
Nós de backup
Arquitetura do HDFS
O HDFS tem uma arquitetura Cliente/Servidor

Constituído por um NameNode e vários DataNodes


Como Funciona ?

O NameNode executa operações no sistema de arquivos,


como open, close, rename de arquivos e de diretórios.

Os protocolos do HDFS são implementados sobre o


protocolo de rede TCP/IP

A comunicação entre os processos acontece por Remote


Procedure Call (RPC).
Como Funciona?

NameNode, mantém o sistema de nomes e coordena


acesso e metadados

Os metadados são mantidos todos em memória RAM para


garantir rapidez de acesso

Organização hierárquica dos dados, semelhante a outros


sistemas de arquivos

Não suporta atalhos


Como Funciona?

Os arquivos são armazenados em blocos que são muito


maiores que os blocos comuns de um sistema de arquivo o
seu padrão é 64MB

Confiabilidade é implementada através da replicação dos


dados. Cada bloco é replicado em 3 ou mais DataNodes

Não é realizado cache para os dados. Um preço a se pagar


pelos grandes conjuntos de dados e acesso por streaming
Demonstração

1- No site http://www.cloudera.com/downloads/ é possível


realizar o download de máquinas virtuais com hadoop
1: import java.io.File;
2: import java.io.IOException;
3: import org.apache.hadoop.conf.Configuration;
5: import org.apache.hadoop.fs.FileSystem;
6: import org.apache.hadoop.fs.
FSDataInputStream;
7: import org.apache.hadoop.fs.
FSDataOutputStream;
8: import org.apache.hadoop.fs.Path;
10: public class HDFSHelloWorld {
11:
12: public static final String theFilename = "hello.txt";
13: public static final String message = "Hello, world!\n";
14:
15: public static void main (String [] args) throws IOException {
16:
17: Configuration conf = new Configuration();
18: FileSystem fs = FileSystem.get(conf);
19:
20: Path filenamePath = new Path(theFilename);
21:
22: try {
23: if (fs.exists(filenamePath)) {
24: // remove the file first
25: fs.delete(filenamePath);
26: }
27:
28: FSDataOutputStream out = fs.create(filenamePath);
29: out.writeUTF(message;
30: out.close();
31:
32: FSDataInputStream in = fs.open(filenamePath);
33: String messageIn = in.readUTF();
34: System.out.print(messageIn);
35: in.close();
46: } catch (IOException ioe) {
47: System.err.println("IOException during operation: " + ioe.toString());
48: System.exit(1);
49: }
40: }
41: }
Referências
Hadoop Tutorial - http://developer.yahoo.
com/hadoop/tutorial/module2.html#programmatically

HDFS Architecture Guide - http://hadoop.apache.


org/hdfs/docs/current/hdfs_design.html

Hadoop (Wikipedia) - http://en.wikipedia.org/wiki/Hadoop

http://hadoopblog.blogspot.com/2010/05/facebook-has-worlds-
largest-hadoop.html4

http://www.cloudera.com/videos/mapreduce_and_hdfs
http://wiki.apache.org/hadoop/PoweredBys
borthakur.com/ftp/hadoopmicrosoft.pdf

Você também pode gostar