Armazenando grandes quantidades de dados

Documentos relacionados
Hadoop - HDFS. Universidade Federal de Goiás Ciência da Computação

GNU/Linux/Bash. Aula 2

Sistemas de Arquivos. André Luiz da Costa Carvalho

Gerência do Sistema de Arquivos. Adão de Melo Neto

Lab 2 MapReduce e o Console Web

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

(HDFS) Usando o. hadoop_

Práticas de Desenvolvimento de Software

Estrutura Interna do KernelUNIX Sistema O. Estrutura Interna de Arquivos (1) Estrutura Seqüência. User application. Standard Unix libraries

AULA 16 - Sistema de Arquivos

Visualizador de Documentos Fiscais Eletrônicos FAQ (Perguntas frequentes)

Laboratório de Hardware

Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3

4) Abaixo está representado o nó_i do arquivo SO.txt em um sistema UNIX.

LABORATÓRIO UNIDADES 1 REVISÃO LINUX E COMANDOS BÁSICOS ABRINDO A MÁQUINA VIRTUAL UBUNTU SERVER PELO VIRTUALBOX

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Tuplas e Dicionários. Vanessa Braganholo vanessa@ic.uff.br

Sistemas Operacionais

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. Programação WEB

Sistemas de Arquivos. Arquivos e Diretórios Características e Implementação Tadeu Ferreira Oliveira - tadeu.ferreira@ifrn.edu.br

PROTOCOLOS DE COMUNICAÇÃO

BIG DATA: UTILIZANDO A INTERNET PARA TOMADA DE DECISÕES

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Arquitetura de Sistemas Operacionais

PHP (PHP Hypertext Preprocessor)

Sistemas Operacionais. Prof. André Y. Kusumoto

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Web. Até a década de 1990, a Internet era utilizada. por pesquisadores, acadêmicos e universitários, para troca de arquivos e para correio eletrônico.

Plano da aula de hoje

Sistemas Operacionais. Roteiro. Introdução. Marcos Laureano

Treinamento Linux. Aula 5-11/04/12

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

Prof. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

Um framework de controle de acesso de aplicações web baseado no Acegi

Capítulo 6. Gerenciamento de Arquivos. 6.1 Arquivos 6.2 Diretórios 6.3 Implementação (6.3.1 a 6.3.6) 6.4 Exemplos

Visão Geral. Funções básicas. Tipos de sistemas operacionais. Facilidade de acesso aos recursos

Programação de Sistemas

Java NET: Interaja com a Internet. Ricardo Terra (rterrabh [at] gmail.com) Java NET: Interaja com a Internet Maio,

Fernando Albuquerque - fernando@cic.unb.br ADMINISTRAÇÃO TCP/IP. Fernando Albuquerque fernando@cic.unb.br

Processando Big Data com Java: Receitas para resolver problemas comuns. Fabiane Bizinella Nardon

Sistemas de Ficheiros. 1. Ficheiros 2. Directórios 3. Implementação de sistemas de ficheiros 4. Exemplos de sistemas de ficheiros

Módulo VIII Linguagem Java Entrada e Saída de Dados Arquivos

Curso PHP Aula 06. Bruno Falcão

Pontifícia Universidade Católica de Minas Gerais Bacharelado em Sistemas de Informação Trabalho de Diplomação


Comandos importantes Virtual Box Linux Compartilhamento

Arquiteturas Java Pragmá1cas para usar Big Data na Nuvem. Fabiane Bizinella Nardon Fernando Babadopulos

Aula 06 Servidor de Arquivos e Impressora (SaMBa)

Scalability of replicated metadata services in distributed file systems

1 Objetivos da Oficina

Busca em Memória. Secundária

Entendendo as Permissões de Arquivos no GNU/Linux

Haddop, MapReduce e Spark

5.1 Sistemas de Arquivos

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Para os demais formatos, o relatório será gerado mas virá com configurações incorretas.

Endereços de transporte TPDU. Nível de Rede Endereço de rede. Figura 1. Entidade de transporte

Programa EndNote. Download para teste no site: (Atualmente o EndNote está na versão 5x)

Sistemas Distribuídos (DCC/UFRJ)

Solução do Conjunto de Problemas 2

Como colocar uma notícia no site internet da UMMSP?

Manual do Usuário. Protocolo

Sistemas Distribuídos. Fundamentos. Nazareno Andrade. Universidade Federal de Campina Grande 02/2008

O que você precisa saber sobre FTP na certificação LPI nível 1

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Google File System. Danilo Silva Marshall Érika R. C. de Almeida

Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos

Capítulo 4. Programação em ASP

Linux Network Servers

UNIDADE III Sistemas Operacionais WINDOWS

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 13

Novidades da versão 7.2.0

Protocolo FTP. Professor Leonardo Larback

Equipamentos de rede. Repetidores. Repetidores. Prof. Leandro Pykosz

Manual de Instalação

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20

Pacote de Idiomas do ImageNow Guia de Introdução

Aula 1 Cleverton Hentz

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Revisão Aula Explique a MBR(Master Boot Record)

Instalar uma versão do Ubuntu de 32 bits ou de 64 bits?

Prova de pré-requisitos: A Arte da Virtualização de Sistemas Operacionais utilizando Xen

Instalando e Configurando o BDE. Instalando o BDE. Configurando o BDE - 1 -

Compartilhamento da internet, firewall

Usando o do-file editor Automatizando o Stata

ARQUIVOS DE CONFIGURAÇAO ZIM 8.50

Trabalho Computacional

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Instruções de Instalação do IBM SPSS Modeler (Licença de Usuário Autorizado) IBM

Simulador de Sistemas de Arquivos

PagSeguro-Python Documentation

Laboratório Configurando o Processo de Roteamento OSPF

SISTEMA LOGS May 20 11:37:47 felipe-virtualbox sudo: pam_unix(sudo:session): session opened for user root by felipe(uid=0)

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

Obrigado por adquirir o Mobile Broadband modem USB E3272. Com o seu modem USB, você tem acesso à rede sem fio em alta velocidade.

1 - SISTEMA DE FICHEIROS NO WINDOWS

Um Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS

Formação de Administradores de Redes Linux LPI level 1. Aula 3 SENAC TI Fernando Costa

Transcrição:

Armazenando grandes quantidades de dados Universidade Federal de Campina Grande UFCG Centro de Engenharia Elétrica e Informática CEEI Departamento de Sistemas e Computação DSC Disciplina: TECC Analise de Dados 2 Período: 2015.2 Professores: Andrey Brito, Leandro Balby

HDFS Sistemas distribuído de arquivos com o objetivo de ser escalável, tolerante à falhas e de fácil expansão É o armazenamento primário para Hadoop e Spark Tem como objetivo ser simples e ao mesmo tempo dar suporte para que aplicações fiquem próximas aos dados

NameNode e DataNode NameNode: serviço/máquina que armazena as informações sobre os arquivos no sistema (metadados) Um acesso precisa passar por ele para descobrir para onde (quais DataNodes) os dados irão, ou de onde virão Existe um NameNode secundário, que tem o objetivo de tolerar a falha do primário DataNode: serviço/máquina responsável pelo armazenado de fato

Arquitetura do HDFS

Características Tolerante a falhas: tipicamente o armazenamento é feito com redundância tripla para cada bloco Escalabilidade: a leitura e armazenamento é feita diretamente com os DataNodes e então escala bem com o número de máquinas Espaço: pode ser adicionado com novos dados e um rebalanceamento Padrão da indústria: usado por muitos sistemas (Hadoop, Spark, Hbase)

Armazenamento no HDFS

HDFS - limitações É pensado para arquivos grandes que normalmente são escritos uma vez e lidos muitas vezes Tem problemas com aplicações que usam muitos arquivos pequenos Não é baixa latência (e sim, alta vazão, por isso os blocos grandes)

Organização dos dados Um arquivo submetido é dividido em pedaços (data blocks) Cada pedaço é armazenado em um ou mais nós Cada cópia é uma réplica Quando algum nó falha ou o dado é perdido fica como sub-replicado (underreplicated) Primeira réplica fica em um nó de um rack (local se o cliente for um DataNode) Segunda em outro rack, terceira no mesmo do segundo, demais são aleatórias

Operação de leitura (localização é transparente)

FileSystem filesystem = FileSystem.get(conf); Path path = new Path("/path/to/file.ext"); if (!filesystem.exists(path)) { System.out.println("File does not exists"); return; } FSDataInputStream in = filesystem.open(path); int numbytes = 0; while ((numbytes = in.read(b)) > 0) { System.out.prinln((char)numBytes)); // code to manipulate the data which is read } in.close(); out.close(); filesystem.close(); http://blogs.data-flair.com/hadoop-hdfs-data-read-and-write-operations/

Operação de escrita Pacotes são quebrados e enfileirados Cada um passa os dados para o seguinte Removido da fila apenas quando tem o Ack de todos

Segurança de acesso Mais comum: modo inseguro Usa o nome do usuário no sistema operacional para definir acesso Exemplo: ubuntu@master:~$ hdfs dfs -ls /user Found 1 items drwxr-xr-x - ubuntu supergroup ubuntu@master:~$ 0 2016-04-07 00:18 /user/ubuntu Então outro usuário não teria permissão andrey@master:~$ hdfs dfs -rm -r /user/ubuntu/output 16/04/11 02:17:54 INFO fs.trashpolicydefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes. rm: Permission denied: user=andrey, access=write, inode="/user/ubuntu":ubuntu:supergroup:drwxr-xr-x andrey@master:~$

HDFS Pontos relevantes da configuração Número de réplicas, tamanho do bloco e onde escrever (/etc/hadoop/conf/hdfssite.xml) <property> <name>dfs.namenode.name.dir</name> <value>file:///data1/cloudera/dfs/nn,file:///data2/cloudera/dfs/nn</value> </property> <property> <name>dfs.blocksize</name> <value>134217728</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> Permite escrever em vários discos para aumentar a banda, melhor que RAID ou SSDs.

Usos comuns na linha de comando Listagens hdfs dfs ls hdfs dfs -ls / hdfs dfs -ls -R /var Uso de espaço hdfs dfs -du -h / hdfs dfs -du /hbase/data/hbase/namespace/ hdfs dfs -du -h /hbase/data/hbase/namespace/ hdfs dfs -du -s /hbase/data/hbase/namespace/

Usos comuns na linha de comando (2) Copiando dados para o HDFS hdfs dfs -mkdir tdata hdfs dfs -ls hdfs dfs -copyfromlocal tutorials/data/geneva.csv tdata hdfs dfs -ls R Copiando de volta cd tutorials/data/ hdfs dfs copytolocal tdata/geneva.csv geneva.csv.hdfs md5sum geneva.csv geneva.csv.hdfs

Usos comuns na linha de comando (3) Estatísticas (replicação, última modificação, tamanho, etc.) hdfs dfs -stat "%r" tdata/geneva.csv Escrevendo a partir da saída padrão echo "blah blah blah" hdfs dfs -put - tdataset/tfile.txt hdfs dfs -ls R hdfs dfs -cat tdataset/tfile.txt

Usos comuns na linha de comando (4) Remoção de arquivos hdfs dfs -rm tdataset/tfile.txt hdfs dfs rm r /user/ubuntu/output* hdfs dfs -ls R Listagem de informações dos blocos hdfs fsck /user/cloudera/tdata/geneva.csv - files -blocks locations

andrey@master:~$ hdfs fsck /curitiba/doc2-2015102621.txt -files -blocks -locations Connecting to namenode via http://master.cloud.lsd.ufcg.edu.br:50070 FSCK started by andrey (auth:simple) from /10.4.3.75 for path /curitiba/doc2-2015102621.txt at Mon Apr 11 12:02:03 BRT 2016 /curitiba/doc2-2015102621.txt 293875416 bytes, 3 block(s): OK 0. BP-59990194-127.0.0.1-1459874876285:blk_1073742072_1248 len=134217728 repl=3 [10.4.3.74:50010, 10.4.3.73:50010, 10.4.3.76:50010] 1. BP-59990194-127.0.0.1-1459874876285:blk_1073742073_1249 len=134217728 repl=3 [10.4.3.74:50010, 10.4.3.73:50010, 10.4.3.76:50010] 2. BP-59990194-127.0.0.1-1459874876285:blk_1073742074_1250 len=25439960 repl=3 [10.4.3.73:50010, 10.4.3.76:50010, 10.4.3.77:50010] Status: HEALTHY Total size: 293875416 B Total dirs: 0 Total files: 1 Total symlinks: 0 Total blocks (validated): 3 (avg. block size 97958472 B) Minimally replicated blocks: 3 (100.0 %) Over-replicated blocks: 0 (0.0 %) Under-replicated blocks: 0 (0.0 %)...... Mis-replicated blocks: 0 (0.0 %) Default replication factor: 3 Average block replication: 3.0 Corrupt blocks: 0 Missing replicas: 0 (0.0 %) Number of data-nodes: 4 Number of racks: 1 FSCK ended at Mon Apr 11 12:02:03 BRT 2016 in 1 milliseconds

Navegador de arquivos

Acessando a interface Web remotamente

Outras formas de armazenamento Armazenamento de objeto Amazon S3 ou OpenStack Swift Escalável já que é orientado a adições e remoções (e não updates pontuais) Bancos Key-value Cassandra (Menos latência) Tolerância a falhas e escalabilidade com replicação e consistência ajustável Quando usar uma alternativa? Muitos arquivos pequenos Os dados já estão em uma forma de armazenamento

Spark no Cluster

$ pyspark --total-executor-cores 8 --master spark://master:7077 >>> file = sc.textfile("hdfs://master.cloud.lsd.ufcg.edu.br:9000/user/spark/doc1-2015102121.txt") >>> counts = file.flatmap(lambda line: line.split(",")).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b) >>> counts.saveastextfile("./output-2") >>> quit() $ hdfs dfs -ls output-2 Found 3 items -rw-r--r-- 3 andrey supergroup 0 2016-04-11 13:47 output-2/_success -rw-r--r-- 3 andrey supergroup 6179309 2016-04-11 13:47 output-2/part-00000 -rw-r--r-- 3 andrey supergroup 6174864 2016-04-11 13:47 output-2/part-00001 $ hdfs dfs -get output-2/part-00000 $ less part-00000

$ pyspark --total-executor-cores 8 --master spark://master:7077 >>> file = sc.textfile( /curitiba/doc1-2015102121.txt") >>> counts = file.flatmap(lambda line: line.split(",")).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b) >>> counts.saveastextfile("./output-2") >>> quit() $ hdfs dfs -ls output-2 Found 3 items -rw-r--r-- 3 andrey supergroup 0 2016-04-11 13:47 output-2/_success -rw-r--r-- 3 andrey supergroup 6179309 2016-04-11 13:47 output-2/part- 00000 -rw-r--r-- 3 andrey supergroup 6174864 2016-04-11 13:47 output-2/part- 00001 $ hdfs dfs -get output-2/part-00000 $ less part-00000