Cassandra: Requisições de clientes e integração com Hadoop. Jorge Faria Fernandes - 090652 Mycke Richard Guntijo - 090662

Documentos relacionados
Seminário apresentado em 29/06/2017 Disciplina: Sistemas Distribuídos Professora: Noemi Rodriguez Aluno: Ricardo Dias

Bruno Antunes da Silva UFSCar - Sorocaba

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

NoSQL Apache Cassandra para DBAs. Conceitos básicos que todo DBA deve conhecer sobre Apache Cassandra.

Introdução Ferramentas Unix MapReduce Outras Ferramentas. Batch Processing. Fabiola Santore. Universidade Federal do Paraná

Arquitetura e Organização de Computadores

Arquitectura interna de um computador

Sistemas Distribuídos

BUSINESS INTELLIGENCE E DATA WAREHOUSE. Big Data Conceitos, Técnicas, Ferramentas e Arquitetura. tutorpro.com.br cetax.com.br

Big Data Open Source com Hadoop

AVALIAÇÃO DE DESEMPENHO DE PROCESSAMENTO DISTRIBUÍDO EM LARGA ESCALA COM HADOOP

1.1. Definição do Problema

Sistemas Distribuídos Capítulo 4 - Aula 5

INF 1010 Estruturas de Dados Avançadas. Indexação em Espaços Multidimensionais DI, PUC-Rio Estruturas de Dados Avançadas 2012.

Informática Parte 10 Prof. Márcio Hunecke

Elementos básico de uma rede Samba - Local Master Browser

Arquiteturas para Sistemas Distribuídos I

BIG DATA PODEMOS DIZER QUE SÃO DADOS GRANDES?

Manual do Usuário SISCOLE - Sistema de Cadastro de Organismos e Laboratórios Estrangeiros

Processamento de INDUSTRIA 4.0. Big Data. Aula #10 - Processamento distribuído de dados FONTE: DELIRIUM CAFE EDUARDO CUNHA DE ALMEIDA

Um Servidor Escalável para Bases Massivas de

INTERNET GROUP MANAGEMENT PROTOCOL - IGMP

SIG. USANDO A TECNOLOGIA COMO SUPORTE Tecnologias de Apoio

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo 6 - Threads

CURSO DE MOLDES EM MÓDULOS OU COMPLETO

Passagens de Mensagens

Haddop, MapReduce e Spark

Bem-vindo ao tópico sobre movimentos de mercadorias em estoque.

Arquitetura de Computadores - Módulos de E/S. por Helcio Wagner da Silva

Prof a Andréa Schwertner Charão DELC/CT/UFSM

Software Configurador

Árvores Splay. Mestrado em Ciência da Computaçã. ção Estruturas de Dados Prof. Dr. Paulo Roberto Gomes Luzzardi Aluna: Nelsi Warken

Informática Parte 11 Prof. Márcio Hunecke

2) Em relação aos algoritmos de sincronização de relógios:

Especialização Disciplina Sistemas Distribuídos Prof. Cesar A. Tacla UTFPR/Curitiba

Um Sistema de Compartilhamento de Arquivos entre Grupos de Pessoas

COMPUTAÇÃO EM NUVEM E PROCESSAMENTO MASSIVO DE DADOS Conceitos, tecnologias e aplicações

Tutorial Suporte Técnico da DTI

Benjamin Bengfort Jenny Kim

NORMA TÉCNICA E PROCEDIMENTOS PARA REALIZAR ALTERAÇÕES NO BANCO DE DADOS CORPORATIVO

PrIntCloud. Disciplina: Procedência de Dados e Data Warehousing. Aluna: Shermila Guerra Santa Cruz. 16/04/13

PLANO DE CONTINUIDADE DE NEGÓCIOS

Administração de Sistemas Operacionais. Prof.: Marlon Marcon

PostgreSQL em um Ambiente Híbrido de Big Data Analytics. Palestrante: Marcio Junior Vieira

Autenticação Arbitrada Newman-Stubblebine. Autenticação Arbitrada. Autenticação Arbitrada Woo-Lam. Autenticação Arbitrada Needham-Schroeder

125ª CONFERÊNCIA DE COORDENAÇÃO DE SLOTS DA IATA Malha S10 VANCOUVER 19 A 22 NOV Apresentação para Empresas Aéreas São Paulo, 14 Out 2009.

Resumo. l Hierarquia de Armazenamento l Discos Magnéticos l Mapeamento de Endereços l Tempos de Acesso l Exemplos l Referências

REDES MPLS Engenharia de Tráfego (TE)

TUTORIAL DO SISTEMA CE MERCANTE

Atualização do Cartão Nacional de Saúde para o Siscan

Nota Fiscal Alagoana. Manual para Envio de Arquivo de Cupons Fiscais via Webservice

Introdução ao roteamento

Informações disponíveis referente a assentos para Copa do Mundo da FIFA Brasil 2014

Introdução à Ciência da Informação

Passo a passo do BPA (Boletim de Produção Ambulatorial)

Qualidade de Software Normatização

Caro cliente, atendendo a sua solicitação de auxílio no processo de configuração da interface E1, segue um passo-a-passo para ajudar a visualização.

Buffer Trabalhos MAC Binary PS Buffer de Rede Configuração de Rede <x> Modo NPA Comutação p/ PCL Configuração p/ PS

19/9/2011. Canais de distribuição. Introdução

PROVA DE NOÇÕES DE INFORMÁTICA

Cassandra no Desenvolvimento de Aplicações para serviços Móveis. por J.P. Eiti Kimura

Use o Menu Configuração para configurar diversos recursos da impressora. Selecione um item de menu para obter mais detalhes:

Gerenciamento de dispositivos móveis

Informativo de Versão 19.10

INSTALAÇÃO DO SMART CORPORATE

Big Data. O que é Big Data! Como surgiu isso! Para que serve?!

Sistemas Operacionais. Entrada e Saída. Edeyson Andrade Gomes.

Algoritmos de Junção Estrela em MapReduce

Introdução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.

ENCERRAMENTO DE SALDOS (ZERAMENTO) DAS CONTAS DE RESULTADO

Oganização e Arquitetura de Computadores

Centro de Serviços Compartilhados TI. Projeto Sala Digital

O que há de novo. Audaces Vestuário Versão Clube Audaces

7. Funções de Lógica Combinacional. 7. Funções de Lógica Combinacional 1. Somadores Básicos. Objetivos. Objetivos. Circuitos Digitais 03/11/2014

Manual Escrituração Fiscal Digital

Plataforma Mercer 360

Requisitos de Software

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Inteligência Artificial Redes Neurais Artificiais

Panorama do EAD e seu marketing

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;

Sistema Operacional. Implementação de Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

QUESTIONÁRIO SOBRE HADOOP LEITURA DO MATERIAL FORNECIDO ALUNO/GRUPO ;

CASSANDRA: BANCO DE DADOS NÃO RELACIONAL DE ALTO DESEMPENHO

Conceitos de Segurança

Qualidade e Eficiência

Algoritmos e Programação II

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

INE 5323 Banco de Dados I

O Sistema de Computação

MANUAL DO USUÁRIO PROGRAMA OSCILOS. Osciloscópio digital. Versão 2.3

Transcrição:

Cassandra: Requisições de clientes e integração com Hadoop Jorge Faria Fernandes - 090652 Mycke Richard Guntijo - 090662

Sumário Requisições de Clientes Coordinator Requisições de Leitura Requisições de Leitura em Múltiplos Data Centers Requisições de Escrita

Sumário Hadoop HDFS MapReduce Pig Hive Mahout Sqoop Cassandra File System

Requisições de Clientes Todos os nós no Cassandra são peers. Uma requisição de leitura ou de escrita pode ser destinada a qualquer nó do cluster. Quando um cliente se conecta a um nó do cluster, o respectivo nó se torna o coordinator para tal operação.

Coordinator O papel do nó coordinator é atuar como um proxy entre a aplicação cliente e os nós que possuem os dados requisitados.

Coordinator

Coordinator O nó coordinator determina quais nós do anel devem atender a requisição do cliente baseado em dois parâmetros: Estratégia de replicação de dados; Configuração de particionamento.

Coordinator Estratégia de replicação de dados SimpleStrategy Utilizada em ambientes de single Data Center. Insere a primeira réplica em um nó determinado pelo particionador e as demais são inseridas nos nós do anel que forem mais próximos, no sentido horário.

Coordinator Estratégia de replicação de dados NetworkTopologyStrategy Utilizada em ambientes de múltiplos Data Centers. Determina quantas réplicas haverão em cada Data Center, sendo que elas podem ser em racks diferentes: Duas réplicas por Data Center. Três réplicas por Data Center.

Coordinator Estratégia de replicação de dados

Coordinator Configuração de particionamento Murmur3Partitioner (default) Distribui uniformemente os dados ao longo do cluster de acordo com os valores de hash do MurmurHash. RandomPartitioner Distribui uniformemente os dados ao longo do cluster de acordo com os valores de hash do MD5. ByteOrderedPartitioner Mantém uma distribuição ordenada lexicalmente por chaves de bytes.

Requisições de Escrita O nó coordinator envia uma requisição de escrita para todas as réplicas que contém a row que será gravada. Se todos os nós réplicas estiverem ativos e disponíveis, eles começarão a escrever, independente do nível de consistência especificado pelo cliente. O nível de consistência de escrita determina quantos nós réplicas devem responder com um ack de sucesso para que a gravação seja cosiderada bem sucedida.

Requisições de Escrita "Sucesso" significa que os dados foram escritos no commit log e na memtable.

Requisições de Escrita Níveis de consistência de escrita: ANY: a escrita é realizada com sucesso em pelo menos um nó, incluindo os nós com hinted Handoff. ONE: a escrita é realizada com sucesso no commit log e na memtable de pelo menos um nó réplica. TWO: a escrita é realizada com sucesso no commit log e na memtable de pelo menos dois nós réplicas. THREE: a escrita é realizada com sucesso no commit log e na memtable de pelo menos três nós réplicas. QUORUM: a escrita é realizada com sucesso em um quorum de nós. Quorum = (replication_factor / 2) + 1 *rounded down.

Requisições de Escrita Níveis de consistência de escrita: LOCAL_QUORUM: a escrita é realizada com sucesso em um quorum de nós no mesmo Data Center do nó coordinator. EACH_QUORUM: a escrita é realizada com sucesso em um quorum de nós em cada Data Center. ALL: a escrita é realizada com sucesso em todos os nós réplicas. Se uma das réplicas não responder a operação de escrita é bloqueada ou falha.

Requisições de Escrita Hinted Handoff Para reduzir o tempo de restauração da consistência de um nó que falha após ele retornar ao cluster. Para garantir absoluta disponibilidade de escrita para aplicações não toleráveis a falha de escrita, mas toleráveis a inconsistência de leituras. Quando um réplica está indisponível no momento da escrita, uma réplica ativa armazena uma hint. Hints: A posição da réplica que está indisponível. A chave da row que será inserida posteriormente.

Requisições de Escrita Hinted Handoff Se o nível de consistência de escrita for ANY e todas as réplicas estiverem indisponíveis, a escrita pode ser executada com sucesso. Nesse caso as hints são armazenadas no nó coordinator, mas ficam indisponíveis para leitura até que as réplicas se tornem disponíveis e a escrita seja realizada nelas. O nó coordinator pode armazenar hints independente do nível de consistência, mas caso ele não consiga enviar a hint para as réplicas, caso elas demorem a ficar disponíveis, um TimeOutException é gerado, porém, para o Cassandra um timeout não é considerado falha para

Requisições de Escrita Hinted Handoff Por padrão as hints são armazenadas por uma hora, uma vez que se o tempo for maior que este o nó é considerado morto e nesse caso é necessário utilizar um repair para re-replicar os dados antes da falha ocorrer. Este tempo pode ser configurado através do parâmetro max_hint_window_in_ms no arquivo cassandra.yaml.

Requisições de Escrita

Requisições de Escrita em Múltiplos Data Centers

Requisições de Leitura Existem dois tipos de leituras que um nó coordinator pode enviar para uma réplica: Requisição direta de leitura A quantidade de réplicas contactadas por este tipo de leitura é determinada pelo nível de consistência especificado pelo cliente. Solicitação de repair de leitura em background Tais requisições são enviadas para quaisquer réplicas adicionais que não receberam uma requisição direta, elas garantem que a row requisitada se tornará consistente em todas as réplicas.

Requisições de Leitura Níveis de consistência de leitura: ONE: Retorna uma resposta da réplica mais próxima (determinada pelo snitch). Por padrão, um repair de leitura roda em background para tornar as outras réplicas consistentes.. TWO: Retorna o dado mais recente de duas das réplicas mais próximas. THREE: Retorna o dado mais recente de três das réplicas mais próximas. QUORUM: Retorna o registro com o timestamp mais recente, uma vez que um quorum de réplicas atendeu à solicitação.

Requisições de Leitura Níveis de consistência de leitura: LOCAL_QUORUM: Retorna o registro com o timestamp mais recente, uma vez que um quorum de réplicas do mesmo Data Center que o nó coordinator atendeu à solicitação. Evita a latência de comunicação entre os Data Centers. EACH_QUORUM: Retorna o registro com o timestamp mais recente, uma vez que um quorum de réplicas em cada Data Center do cluster atendeu à solicitação. ALL: Retorna o registro com o timestamp mais recente, uma vez que todas as réplicas atenderam à solicitação. A operação de leitura falhará se uma réplica não responder.

Requisições de Leitura

Hadoop Implementação do algorítmo MapReduce; Alta latência de análise e baixa latência de acesso em tempo real são necessárias; Limitações: Pesquisas repetitivas; Falta de controle de mapeamento e redução.

Hadoop Hadoop Distributed File System; Tolerância a falhas; Reiniciando tarefas; Replicação de dados. Não usado para leituras e escritas randômicas; Execução especulativa.

Hadoop

Hadoop Distributed File System (HDFS) Baseado no Google File System (GFS); Design: Falhas vão ocorrer; Arquivos serão grandes; Uma vez escritos e fechados, serão apenas lidos; Apenas um leitor por vez; Acesso garantido à banda para operações de baixa latência.

Hadoop Distributed File System (HDFS) Arquivos HDFS são unidos em blocos; Dois tipo de nó: NameNode, único, gerencia o namespace: caminho dos mapas de arquivo e nomes com blocos e suas localizações; DataNode, mantém blocos de dados e servidores de requisições r/w de clientes. Decide onde cada bloco de dado replicado é armazenado.

Hadoop Distributed File System (HDFS)

MapReduce Map; Transformar uma entrada de dados em uma saída chave/valor; Reduce; map(key1,value1) -> list<key2,value2> Pega todos os valores de uma chave específica e gera uma nova lista reducida como saída. reduce(key2, list<value2>) -> list<value3>

MapReduce Usualmente HDFS e MapReduce rodam no mesmo datacenter.

HBase Modelado a partir do Google BigTable; Roda em cima do HDFS sanando as mesmas necessidades do uso de BigTable pra Hadoop.

Pig Plataforma para análise de grandes blocos de dados; Linguagem de fluxo de dados orientado a "Pig Latin"; Funções de transformação de dados; Linguagem de alto nível para serialização de dados. Desenvolvido pelo Yahoo!

Pig Operações básicas; LOAD; FOREACH..GENERATE; GROUP; JOIN; DUMP/STORE.

Pig

Hive Baseado em SQL; Análise de grandes quantidades de dados; Processamento de log, mineração de textos, indexação de documentos... Desenvolvido pelo Facebook.

Mahout Componente do Hadoop; Oferece aprendizado; Exemplo: Recomendação de produtos. Gera um.txt da análise.

Sqoop Auxília a transferência de dados entre RDBMS, Hadoop e entre outros, como NoSQL.

Cassandra File System Compressão de blocos com google snappy (Zippy, compressão 250MB/s descompressão 500MB/s); Construido em ColumnFamilies inode e blocks. Dados gravados como ByteBuffer internamente.

HDFS vs CFS Cassandra File System provê uma armazenamento que torna Hadoopmais fácil e rápido de ser aplicado; Baseado em P2P, sem mestre; Completamente transparente, MapReduce, Hive, Pig, Mahout.

HDFS vs CFS Serviços do Hadoop são substituídos, (NameNode, SecundaryNameNode e DataNode); Armazenamento compartilhado não é mais necessário; Performance igual.

Referências 1. Cassandra 1.2 Documentation. http://www.datastax. com/docs/1.2/ 2. Cassandra Consistency level on Write and Read. https://sites.google.com/site/developertips/home/java/howcassandra-writes-and-reads-data 3. Cassandra integration with Hadoop. http://www. datastax.com/docs/datastax_enterprise2.2/solutions/hadoop_index 4. DataStax Combines Hadoop, Cassandra, Hive into One Happy Big Data Family. http: //www.cmswire.com/cms/information-management/datastax-combineshadoop-cassandra-hive-into-one-happy-big-data-family-010661.php

Referências 5. Cassandra The Definitive Guide - O' Reilly. 6. Artigos do DataStax. http://www.datastax.com/wpcontent/uploads/2011/07/brisk_fully_distributed_hadoop.pdf http://www.datastax.com/wpcontent/uploads/2011/04/ds_brisk_datasheet.pdf