SlideShare uma empresa Scribd logo
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a




                                              Paulo Vitor Mira Fonseca

                                        Unifesp - Universidade Federal de S˜o Paulo
                                                                           a
                                                   http://www.unifesp.br


                                                19 de outubro de 2011

ICT–UNIFESP —                                                                                           1/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Sum´rio I
   a

      1 NoSQL


      2 Cassandra


      3 Passo a Passo Para Instalar Cassandra


      4 Hector


      5 Projeto


      6 Problemas Encontrados


      7 Conclus˜o
               a


ICT–UNIFESP —                                                                                           2/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


NoSQL




              Banco de dados n˜o-relacionais;
                              a
              Sem a preocupa¸˜o de fornecer garantias ACID (Atomicidade,
                               ca
              Consistˆncia, Isolamento e Durabilidade);
                     e
              N˜o exige esquema de tabela fixa;
               a
              Geralmente n˜o suporta instru¸˜es e opera¸˜es de jun¸˜o SQL.
                          a                co          co         ca




ICT–UNIFESP —                                                                                           3/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


NoSQL
 Exemplos de Banco NoSQL




              CouchDB
              Redis
              MongoDB
              Riak
              Neo4j
              HBase
              Cassandra




ICT–UNIFESP —                                                                                           4/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


NoSQL
 CouchDB




              Banco de dados orientado a documentos
              Escrito em Erlang
              Protocolo HTTP/REST
              Licen¸a: Apache
                   c
              Replica¸˜o Bi-direcional com detec¸˜o de conflitos
                     ca                         ca
              MVCC (Multiversion concurrency control) - Opera¸˜es de escrita
                                                             co
              n˜o bloqueiam leituras
               a
              Autentica¸˜o nativa
                       ca
              http://couchdb.apache.org/




ICT–UNIFESP —                                                                                           5/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


NoSQL
 Redis




              Banco de dados chave/valor
              Escrito em C/C++
              Protocolo Telnet-like
              Licen¸a: BSD
                   c
              Banco de dados em mem´ria/disco
                                   o
              Possui os tipos conjunto, listas e hashes
              Valores podem expirar (como um cache)
              Opera¸˜es transacionadas
                   co
              http://redis.io/




ICT–UNIFESP —                                                                                           6/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


NoSQL
 MongoDB



              Banco de dados orientado a documentos
              Escrito em C++
              Protocolo Bin´rio (BSON)
                           a
              Licen¸a: AGPL (Drivers: Apache)
                   c
              Replica¸˜o mestre/escravo
                     ca
              As consultas s˜o express˜es javascript
                            a         o
              Executa fun¸˜es arbitr´rias javascript do lado do servidor
                         co         a
              Journaling
              Em sistemas 32 bits ´ limitado a
                                  e                                    2.5Gb
              Um banco de dados vazio ocupa 192MB
              http://www.mongodb.org/



ICT–UNIFESP —                                                                                           7/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


NoSQL
 Riak




              Banco de dados chave/valor
              Escrito em Erlang, C e javascript
              Protocolo HTTP/REST e bin´rio
                                       a
              Licen¸a: Apache
                   c
              Tolerˆncia a falhas
                   e
              Links link walking: Parecido com um banco de dados baseado em
              grafos.
              Monitoramento SNMP (Licenciado comercial)
              http://wiki.basho.com/




ICT–UNIFESP —                                                                                           8/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


NoSQL
 Neo4j


              Banco de dados do tipo grafo.
              Escrito em Java
              Protocolo HTTP/REST
              Licen¸a: GPL, AGPL (algumas funcionalidades)
                   c
              Execu¸˜o embarcada em aplica¸˜es Java
                   ca                     co
              V´rtices e arestas podem ter metadados
               e
              Multiplos algorithms de busca (path-finding )
              Otimizado para leituras
              Opera¸˜es transacionadas
                   co
              Execu¸˜o de script Groovy
                   ca
              Backup on-line, monitoramento avan¸ado e de alta disponibilidade.
                                                c
              http://neo4j.org/


ICT–UNIFESP —                                                                                           9/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


NoSQL
 HBase




              Banco de dados do tipo BigTable
              Escrito em Java
              Protocolo HTTP/REST e Thrift
              Licen¸a: Apache
                   c
              Otimizado para consultas em tempo real
              Jruby-based (JIRB) shell
              Desempenho de acesso parecido com MySQL
              http://hbase.apache.org/




ICT–UNIFESP —                                                                                           10/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 O que ´?
       e




              Desenvolvido inicialmente pelo Facebook
              Liberado como open source em 2008 para ampliar sua instala¸˜o de
                                                                        ca
              MySQL
              Reposit´rio de dados leve feito em Java
                     o
              Dispensa a sobrecarga de recursos dos bancos de dados relacionais
              convencionais (NoSQL)
              Protocolo de acesso: Thrift
              Re´ne a arquitetura do Dynamo, da Amazon e modelo de dados
                u
              baseado no Bigtable, do Google
      Atualmente ´ mantido por desenvolvedores da funda¸˜o Apache e
                  e                                    ca
      colaboradores de muitas empresas.




ICT–UNIFESP —                                                                                           11/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Quem usa?



      Empresas que usam o banco de dados distribu´ Cassandra:
                                                 ıdo
              Digg
              Facebook
              Twitter
              Reddit
              Rackspace
              Cloudkick
              Cisco
              SimpleGeo
              Ooyala
              OpenX



ICT–UNIFESP —                                                                                           12/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Quem usa?




      O maior cluster em produ¸˜o tem aproximadamente 100TB de dados
                              ca
      rodando em 150 m´quinas.
                        a




ICT–UNIFESP —                                                                                           13/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Clusteriza¸˜o
           ca




      Quando um Cluster ´ criado, um ponto importante ´ selecionar o
                           e                          e
      particionador certo, existem dois:
              Random Partitioner (RP): Distribui aleat´riamente os pares
                                                       o
              chave-valor atrav´s da rede, resultando em um bom balanceamento
                               e
              de carga. Comparado a OPP, mais n´s tem que ser acessado para se
                                                   o
              obter um n´mero de chaves.
                         u
              Order Preserving Partitioner (OPP): Distribui os pares chave-valor
              de uma forma natural para que as chaves similares n˜o fiquem longe.
                                                                  a
              A vantagem ´ que menos n´s tem que ser acessado. A desvantagem
                            e             o
              ´ a distribui¸˜o desigual dos pares chave-valor.
              e            ca




ICT–UNIFESP —                                                                                           14/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Caracter´
         ıstica




              Descentralizada: Cada n´ do cluster tem o mesmo papel. Dados
                                        o
              s˜o distribu´
               a          ıdos em todo o cluster (ent˜o cada n´ cont´m diferentes
                                                     a        o     e
              tipos de dados), como n˜o h´ mestre cada n´ pode atender qualquer
                                      a a                 o
              pedido.




ICT–UNIFESP —                                                                                           15/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Caracter´
         ıstica




              Elasticidade: quando m´quinas s˜o adicionadas o tempo de escrita
                                      a        a
              e leitura se comportam de forma linear, evitando inatividade ou
              interrup¸˜o.
                       ca




ICT–UNIFESP —                                                                                           16/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Caracter´
         ıstica




              Tolerˆncia a Falhas: Os dados s˜o automaticamente replicados
                   a                           a
              para v´rios n´s.
                    a      o
              N´s falhos podem ser substitu´
               o                           ıdos sem inatividade do Cluster.




ICT–UNIFESP —                                                                                           17/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Hardware




      Mem´ria
         o
              Os dados recentemente salvos s˜o escritos em tabelas na mem´ria
                                            a                            o
              (aka memtables)
              Dados antigos s˜o salvos em disco, mas os mais acessados s˜o
                             a                                          a
              mantidos no cache do sistema arquivos (M´quina virtual Java).
                                                       a
              Quanto mais mem´ria melhor.
                             o
              Em ambientes virtualizados ´ recomendado no m´
                                         e                 ınimo 4GB.




ICT–UNIFESP —                                                                                           18/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Hardware




      CPU
              Cassandra tem uma arquitetura de alta concorrˆncia.
                                                           e
              Faz bom uso de m´ltiplos n´cleos.
                              u         u
              Se vocˆ estiver rodando em uma m´quina virtual, considere usar um
                    e                         a
              Rackspace Cloud Server.




ICT–UNIFESP —                                                                                           19/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Hardware




      Disco
              Ideal ter no m´
                            ınimo 2 discos.
                      CommitLogDirectory
                      DataFileDirectories
              Limita¸˜es do sistema de arquivos:
                    co
                      ext2/ext3 - 2TB
                      XFS - 16TB(32 bit) praticamente ilimitado(64 bit)




ICT–UNIFESP —                                                                                           20/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Hardware




      Nuvem (Cloud)
              A maioria das instala¸˜es do cassandra ´ feita em ambientes em
                                   co                e
              nuvem.
              Rackspace Cloud Server e Amazon EC2.




ICT–UNIFESP —                                                                                           21/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Linguagens suportadas




              Thrift API
              Linguagens:
                      Python (Pycassa, Telephus)
                      Java (Hector, Kundera, Pelops, Cassandrelle)
                      .Net (Aquiles)
                      Ruby (Cassandra)
                      PHP (Cassandra PHP Client Library, phpcassa)




ICT–UNIFESP —                                                                                           22/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Limita¸oes
       c˜




              Todos os dados para uma unica linha deve caber (no disco) em uma
                                        ´
              unica m´quina no cluster.
              ´      a
              Uma coluna de valor (column value) n˜o pode ser maior que 2GB.
                                                  a
              Uma linha pode ter no m´ximo 2 bilh˜es de colunas.
                                     a           o
              Os campos chaves e os nomes da colunas podem ter no m´ximo
                                                                   a
              64K bytes.




ICT–UNIFESP —                                                                                           23/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Tuning




              Manter o diret´rio de commit log e dados em diferentes discos.
                            o
              Parˆmetros da m´quina virtual Java:
                 a             a
                      -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42
                      -Dcassandra.compaction.priority=1 - Diminui a prioridade da
                      compacta¸˜o.
                               ca
                      -XX:+UseCompressedOops - Habilita compress˜o de referˆncias,
                                                                   a          e
                      reduz overhead em JVMs 64bit.




ICT–UNIFESP —                                                                                           24/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Passo a Passo Para Instalar Cassandra




              Pr´ requisito: ´ necess´rio ter instalado uma m´quina virtual Java
                e            e       a                       a
              Baixar no site:
              http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache-
              cassandra-0.7.6-2-bin.tar.gz
              Descompactar este arquivo na pasta /opt
              Iniciar o servidor com o seguinte comando: bin/cassandra -f
              J´ estamos com o servidor rodando em estˆncia unica
               a                                      a     ´




ICT–UNIFESP —                                                                                           25/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Passo a Passo Para Instalar Cassandra




              Pr´ requisito: ´ necess´rio ter instalado uma m´quina virtual Java
                e            e       a                       a
              Baixar no site:
              http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache-
              cassandra-0.7.6-2-bin.tar.gz
              Descompactar este arquivo na pasta /opt
              Iniciar o servidor com o seguinte comando: bin/cassandra -f
              J´ estamos com o servidor rodando em estˆncia unica
               a                                      a     ´




ICT–UNIFESP —                                                                                           25/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Passo a Passo Para Instalar Cassandra




              Pr´ requisito: ´ necess´rio ter instalado uma m´quina virtual Java
                e            e       a                       a
              Baixar no site:
              http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache-
              cassandra-0.7.6-2-bin.tar.gz
              Descompactar este arquivo na pasta /opt
              Iniciar o servidor com o seguinte comando: bin/cassandra -f
              J´ estamos com o servidor rodando em estˆncia unica
               a                                      a     ´




ICT–UNIFESP —                                                                                           25/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Passo a Passo Para Instalar Cassandra




              Pr´ requisito: ´ necess´rio ter instalado uma m´quina virtual Java
                e            e       a                       a
              Baixar no site:
              http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache-
              cassandra-0.7.6-2-bin.tar.gz
              Descompactar este arquivo na pasta /opt
              Iniciar o servidor com o seguinte comando: bin/cassandra -f
              J´ estamos com o servidor rodando em estˆncia unica
               a                                      a     ´




ICT–UNIFESP —                                                                                           25/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Passo a Passo Para Instalar Cassandra




              Pr´ requisito: ´ necess´rio ter instalado uma m´quina virtual Java
                e            e       a                       a
              Baixar no site:
              http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache-
              cassandra-0.7.6-2-bin.tar.gz
              Descompactar este arquivo na pasta /opt
              Iniciar o servidor com o seguinte comando: bin/cassandra -f
              J´ estamos com o servidor rodando em estˆncia unica
               a                                      a     ´




ICT–UNIFESP —                                                                                           25/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra




               ¸˜
      DEMONSTRACAO...




ICT–UNIFESP —                                                                                           26/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Script Inicial




      create keyspace u ni f e sp A p re s e nt a c ao ;
      use un if e s pA p r es e n ta c a o ;
      create column family User with
         comparator = UTF8Type and
         column_metadata =[
      { column_name : first , validation_class :
                UTF8Type , index_type : KEYS } ,
      { column_name : last ,
                validation_class : UTF8Type } ,
      { column_name : age , validation_class :
                UTF8Type , index_type : KEYS }];




ICT–UNIFESP —                                                                                           27/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Inser¸˜o
      ca




      connect localhost /9160;
      use un if e s pA p r es e n ta c a o ;

      # inserir

      set User [ ’ pfonseca ’ ][ ’ first ’] = ’ Paulo ’;
      set User [ ’ pfonseca ’ ][ ’ last ’] = ’ Fonseca ’;
      set User [ ’ pfonseca ’ ][ ’ age ’] = ’ 25 ’;

      get User [ ’ pfonseca ’ ];




ICT–UNIFESP —                                                                                           28/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Atualiza¸˜o
         ca




      connect localhost /9160;
      use un if e s pA p r es e n ta c a o ;

      # atualizar
      set User [ ’ pfonseca ’ ][ ’ age ’] = ’ 25 ’;
      set User [ ’ pfonseca ’ ][ ’ first ’] = ’ Paulo2 ’;




ICT–UNIFESP —                                                                                           29/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Cassandra
 Exclus˜o
       a




      connect localhost /9160;
      use un if e s pA p r es e n ta c a o ;

      # deletar uma coluna
      del User [ ’ pfonseca ’ ][ ’ last ’ ];

      # deletar uma linha
      del User [ ’ pfonseca ’ ];




ICT–UNIFESP —                                                                                           30/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Hector




              Cliente thrift de acesso para a linguagem Java.
              Licen¸a MIT.
                   c
              Interface orientada a objetos de acesso ao Cassandra.
              Suporte a falhas.
              Pool de conex˜o.
                           a
              Suporte a JMX (conex˜es dispon´
                                  o         ıveis, conex˜es ociosas, estat´
                                                        o                 ısticas
              de erro, etc.).




ICT–UNIFESP —                                                                                           31/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Hector
 Inser¸˜o
      ca




      public void insert ( final String key ,
              final String value ) throws Exception {
          execute ( new Command (){
            public Void execute ( final Keyspace ks )
                        throws Exception {
              ks . insert ( key , createColumnPath ( COLUMN_NAME ) ,
                        bytes ( value ));
              return null ;
            }
              });
      }




ICT–UNIFESP —                                                                                           32/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Hector
 Busca



      public String get ( final String key ) throws
                       Exception {
        return execute ( new Command (){
          public String execute ( final Keyspace ks )
                       throws Exception {
            try {
              return string ( ks . getColumn ( key ,
              createColumnPath ( COLUMN_NAME )). getValue ());
            } catch ( NotFo undExc eption e ) {
              return null ;
            }
          }
        });
      }



ICT–UNIFESP —                                                                                           33/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Hector
 Exclus˜o
       a



      /∗ ∗
        ∗ D e l e t e a key from c a s s a n d r a
        ∗/
      public void delete ( final String key ) throws
                    Exception {
         execute ( new Command (){
           public Void execute ( final Keyspace ks )
                    throws Exception {
               ks . remove ( key , createColumnPath ( COLUMN_NAME ));
                return null ;
           }
         });
      }




ICT–UNIFESP —                                                                                           34/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Objetivos


              Levantar um servidor de persistˆncia No-SQL;
                                             e
              Integrar com Tomcat;
              Servi¸o tem que formar um cluster e os dados sejam armazenados
                    c
              replicados;
              Se novo servidor ´ instanciado – deve haver balan¸o de carga
                               e                               c
              autom´tico na replica¸˜o dos dados;
                    a               ca
              Salva XML da pesquisa;
              Salva uma pesquisa, retorna uma chave;
              Recupera uma pesquisa baseada na chave;
              Recupera todas as chaves armazenadas.




ICT–UNIFESP —                                                                                           35/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Modelo




ICT–UNIFESP —                                                                                           36/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Projeto
 Configura¸˜o para criar cluster em Cassandra
         ca




      Configurar o arquivo cassandra/conf/cassandra.yaml
              Server:
              -Alterar os campos seeds e listen address para o ip de rede da
              m´quina
                a
              - Alterar o campo rpc address para 0.0.0.0




ICT–UNIFESP —                                                                                           37/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Projeto
 Configura¸˜o para criar cluster em Cassandra
         ca




      Configurar o arquivo cassandra/conf/cassandra.yaml
              Clientes:
              - Alterar o campo seeds: para o ip do servidor
              - Alterar o campo listen address para o ip de rede da m´quina
                                                                     a
              - Alterar o campo rpc address para 0.0.0.0
              Ap´s realizar a configura¸˜o basta reiniciar o servidor e os clientes
                 o                     ca
              para que o cluster entre em funcionamento.




ICT–UNIFESP —                                                                                           38/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Problemas Encontrados




              Biblioteca para uso do Thrift -> Solu¸˜o: uso do Hector;
                                                   ca
              Melhoria no uso do Hector;
              Colocando o Cassandra como background ele p´ra de responder;
                                                         a
              Pouca documenta¸˜o sobre o Cassandra.
                             ca




ICT–UNIFESP —                                                                                           39/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Problemas Encontrados




              Biblioteca para uso do Thrift -> Solu¸˜o: uso do Hector;
                                                   ca
              Melhoria no uso do Hector;
              Colocando o Cassandra como background ele p´ra de responder;
                                                         a
              Pouca documenta¸˜o sobre o Cassandra.
                             ca




ICT–UNIFESP —                                                                                           39/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Problemas Encontrados




              Biblioteca para uso do Thrift -> Solu¸˜o: uso do Hector;
                                                   ca
              Melhoria no uso do Hector;
              Colocando o Cassandra como background ele p´ra de responder;
                                                         a
              Pouca documenta¸˜o sobre o Cassandra.
                             ca




ICT–UNIFESP —                                                                                           39/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Problemas Encontrados




              Biblioteca para uso do Thrift -> Solu¸˜o: uso do Hector;
                                                   ca
              Melhoria no uso do Hector;
              Colocando o Cassandra como background ele p´ra de responder;
                                                         a
              Pouca documenta¸˜o sobre o Cassandra.
                             ca




ICT–UNIFESP —                                                                                           39/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Problemas Encontrados




              Nenhuma instancia do cluster responde quando um dos clientes n˜o
                                                                            a
              est´ em execu¸˜o;
                 a         ca
              Melhorias no pool de conex˜o do hector.
                                        a




ICT–UNIFESP —                                                                                           40/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Problemas Encontrados




              Nenhuma instancia do cluster responde quando um dos clientes n˜o
                                                                            a
              est´ em execu¸˜o;
                 a         ca
              Melhorias no pool de conex˜o do hector.
                                        a




ICT–UNIFESP —                                                                                           40/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Conclus˜o
       a




      Banco de dados do tipo NoSQL ´ um assunto muito amplo e ainda h´
                                      e                                   a
      muito mais a ser explorado, os t´picos abordados nesta apresenta¸˜o s˜o
                                      o                               ca a
      uma pequena parte de uma diferente forma de se pensar na constru¸˜o
                                                                        ca
      de sistemas.




ICT–UNIFESP —                                                                                           41/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


D´vidas
 u




      ”No one gets fired for choosing Apache’s stuff.”




ICT–UNIFESP —                                                                                           42/43
NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o
                                                                                                   a


Referencias

              http://cassandra.apache.org/
              http://wiki.apache.org/cassandra/CassandraHardware
              http://wiki.apache.org/cassandra/ClientOptions
              http://wiki.apache.org/cassandra/CassandraLimitations
              http://wiki.apache.org/cassandra/PerformanceTuning
              http://github.com/pycassa/pycassa
              http://github.com/driftx/Telephus
              http://aquiles.codeplex.com/
              http://github.com/rantav/hector
              http://github.com/fauna/cassandra
              http://github.com/s7/scale7-pelops
              http://demoiselle.sf.net/component/demoiselle-cassandra/
              https://github.com/kallaspriit/Cassandra- PHP-Client-Library/

ICT–UNIFESP —                                                                                           43/43

Mais conteúdo relacionado

PDF
DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
PDF
Conhecendo Apache Cassandra @Movile
PDF
Cassandra NoSQL JUG Vale 2012
PDF
Cassandra - O básico
PDF
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
ODP
NoSQL: onde, como e por quê? Cassandra e MongoDB
PPTX
Seminário - NoSQL
PDF
Apresentação cassandra
DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
Conhecendo Apache Cassandra @Movile
Cassandra NoSQL JUG Vale 2012
Cassandra - O básico
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
NoSQL: onde, como e por quê? Cassandra e MongoDB
Seminário - NoSQL
Apresentação cassandra

Mais procurados (20)

PDF
Primeiros passos com o Cassandra
PPTX
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
PDF
Material Seminário NoSQL
PPT
Comparação de desempenho entre SQL e NoSQL
PPTX
SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
PDF
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
PPTX
NoSQL, Base VS ACID e Teorema CAP
PDF
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
PDF
Bancos de dados NoSQL
PDF
Sistemas NoSQL, surgimento, características e exemplos
PDF
Bancos orientados a colunas (Cassandra)
PDF
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
PDF
NoSQL Familia de Colunas Monografia
PPT
Banco de Dados - NoSQL
PDF
ODP
No sql std
PPTX
Modelos NoSQL e a Persistência Poliglota
PDF
Introducao aos Bancos de Dados Não-relacionais
PDF
Algumas das principais características do NoSQL
PPT
Bancos de dados NoSQL - Redis e MongoDB
Primeiros passos com o Cassandra
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Material Seminário NoSQL
Comparação de desempenho entre SQL e NoSQL
SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
NoSQL, Base VS ACID e Teorema CAP
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
Bancos de dados NoSQL
Sistemas NoSQL, surgimento, características e exemplos
Bancos orientados a colunas (Cassandra)
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
NoSQL Familia de Colunas Monografia
Banco de Dados - NoSQL
No sql std
Modelos NoSQL e a Persistência Poliglota
Introducao aos Bancos de Dados Não-relacionais
Algumas das principais características do NoSQL
Bancos de dados NoSQL - Redis e MongoDB
Anúncio

Semelhante a Apresentacao Cassandra (20)

PDF
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL
PDF
Escalabilidade, as modas, (No)SQL
KEY
Utilizando NoSQL no desenvolvimento de soluções inteligentes
PDF
PDF
Bancos de dados open source
PDF
Minicurso Epoca mongoDB
PDF
Postgres nuvens
PDF
Cassandra com NOSQL parte 2
PDF
Fisl banco de dados no sql de código aberto
PDF
Nosql4java
KEY
MongoDB na Campus Party
PDF
Palestra nosql
PDF
Python e bancos NoSQL
PPT
Desenvolvendo soluções com banco de dados não relacional - MongoDB
PDF
Palestra CouchDB III ENSOL
PPT
NoSQL & SQL
PDF
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
PDF
Cobo, Cristiane Brandão. Especialização Banco de Dados
PPTX
Ad server cassandra
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL
Escalabilidade, as modas, (No)SQL
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Bancos de dados open source
Minicurso Epoca mongoDB
Postgres nuvens
Cassandra com NOSQL parte 2
Fisl banco de dados no sql de código aberto
Nosql4java
MongoDB na Campus Party
Palestra nosql
Python e bancos NoSQL
Desenvolvendo soluções com banco de dados não relacional - MongoDB
Palestra CouchDB III ENSOL
NoSQL & SQL
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Cobo, Cristiane Brandão. Especialização Banco de Dados
Ad server cassandra
Anúncio

Mais de PeslPinguim (20)

PDF
Introdução ao Arduino
PPTX
Aula 4 redes Inclusão Digital
PPTX
Aula 3 parte 2 software Inclusão Digital
PPTX
Aula 3 software Inclusão Digital
PPTX
Aula 2 parte 2 hardware Inclusão Digital
PPTX
Aula 2 hardware Inclusão Digital
PPTX
Apresentação1
PPT
Aula 1 apresentacao
PPTX
Aula 5 internet Inclusão Digital
PPTX
Apresentação1_
PPTX
Curso Básico de Java - Aula 10
PPTX
Curso Básico de Java - Aula 5
PPTX
Curso Básico de Java - Aula 4
PPTX
Curso Básico de Java - Aula 1
PPTX
Curso Básico de Java - Aula 7
PPTX
Curso Básico de Java - Aula 3
PPTX
Curso Básico de Java - Aula 2
PPTX
Curso Básico de Java - Aula 9
PPTX
Curso Básico de Java - Aula 8
PDF
Eletrônica aplicada - interruptor sonoro
Introdução ao Arduino
Aula 4 redes Inclusão Digital
Aula 3 parte 2 software Inclusão Digital
Aula 3 software Inclusão Digital
Aula 2 parte 2 hardware Inclusão Digital
Aula 2 hardware Inclusão Digital
Apresentação1
Aula 1 apresentacao
Aula 5 internet Inclusão Digital
Apresentação1_
Curso Básico de Java - Aula 10
Curso Básico de Java - Aula 5
Curso Básico de Java - Aula 4
Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 3
Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 9
Curso Básico de Java - Aula 8
Eletrônica aplicada - interruptor sonoro

Último (11)

PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Design - Introdução a Gestalt e teoria das formas
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Utilizando code blockes por andre backes
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Tipos de servidor em redes de computador.pptx
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Design - Introdução a Gestalt e teoria das formas
Viasol Energia Solar -Soluções para geração e economia de energia
Manejo integrado de pragas na cultura do algodão
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Arquitetura de computadores - Memórias Secundárias
Eng. Software - pontos essenciais para o início
Utilizando code blockes por andre backes

Apresentacao Cassandra

  • 1. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Paulo Vitor Mira Fonseca Unifesp - Universidade Federal de S˜o Paulo a http://www.unifesp.br 19 de outubro de 2011 ICT–UNIFESP — 1/43
  • 2. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Sum´rio I a 1 NoSQL 2 Cassandra 3 Passo a Passo Para Instalar Cassandra 4 Hector 5 Projeto 6 Problemas Encontrados 7 Conclus˜o a ICT–UNIFESP — 2/43
  • 3. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a NoSQL Banco de dados n˜o-relacionais; a Sem a preocupa¸˜o de fornecer garantias ACID (Atomicidade, ca Consistˆncia, Isolamento e Durabilidade); e N˜o exige esquema de tabela fixa; a Geralmente n˜o suporta instru¸˜es e opera¸˜es de jun¸˜o SQL. a co co ca ICT–UNIFESP — 3/43
  • 4. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a NoSQL Exemplos de Banco NoSQL CouchDB Redis MongoDB Riak Neo4j HBase Cassandra ICT–UNIFESP — 4/43
  • 5. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a NoSQL CouchDB Banco de dados orientado a documentos Escrito em Erlang Protocolo HTTP/REST Licen¸a: Apache c Replica¸˜o Bi-direcional com detec¸˜o de conflitos ca ca MVCC (Multiversion concurrency control) - Opera¸˜es de escrita co n˜o bloqueiam leituras a Autentica¸˜o nativa ca http://couchdb.apache.org/ ICT–UNIFESP — 5/43
  • 6. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a NoSQL Redis Banco de dados chave/valor Escrito em C/C++ Protocolo Telnet-like Licen¸a: BSD c Banco de dados em mem´ria/disco o Possui os tipos conjunto, listas e hashes Valores podem expirar (como um cache) Opera¸˜es transacionadas co http://redis.io/ ICT–UNIFESP — 6/43
  • 7. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a NoSQL MongoDB Banco de dados orientado a documentos Escrito em C++ Protocolo Bin´rio (BSON) a Licen¸a: AGPL (Drivers: Apache) c Replica¸˜o mestre/escravo ca As consultas s˜o express˜es javascript a o Executa fun¸˜es arbitr´rias javascript do lado do servidor co a Journaling Em sistemas 32 bits ´ limitado a e 2.5Gb Um banco de dados vazio ocupa 192MB http://www.mongodb.org/ ICT–UNIFESP — 7/43
  • 8. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a NoSQL Riak Banco de dados chave/valor Escrito em Erlang, C e javascript Protocolo HTTP/REST e bin´rio a Licen¸a: Apache c Tolerˆncia a falhas e Links link walking: Parecido com um banco de dados baseado em grafos. Monitoramento SNMP (Licenciado comercial) http://wiki.basho.com/ ICT–UNIFESP — 8/43
  • 9. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a NoSQL Neo4j Banco de dados do tipo grafo. Escrito em Java Protocolo HTTP/REST Licen¸a: GPL, AGPL (algumas funcionalidades) c Execu¸˜o embarcada em aplica¸˜es Java ca co V´rtices e arestas podem ter metadados e Multiplos algorithms de busca (path-finding ) Otimizado para leituras Opera¸˜es transacionadas co Execu¸˜o de script Groovy ca Backup on-line, monitoramento avan¸ado e de alta disponibilidade. c http://neo4j.org/ ICT–UNIFESP — 9/43
  • 10. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a NoSQL HBase Banco de dados do tipo BigTable Escrito em Java Protocolo HTTP/REST e Thrift Licen¸a: Apache c Otimizado para consultas em tempo real Jruby-based (JIRB) shell Desempenho de acesso parecido com MySQL http://hbase.apache.org/ ICT–UNIFESP — 10/43
  • 11. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra O que ´? e Desenvolvido inicialmente pelo Facebook Liberado como open source em 2008 para ampliar sua instala¸˜o de ca MySQL Reposit´rio de dados leve feito em Java o Dispensa a sobrecarga de recursos dos bancos de dados relacionais convencionais (NoSQL) Protocolo de acesso: Thrift Re´ne a arquitetura do Dynamo, da Amazon e modelo de dados u baseado no Bigtable, do Google Atualmente ´ mantido por desenvolvedores da funda¸˜o Apache e e ca colaboradores de muitas empresas. ICT–UNIFESP — 11/43
  • 12. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Quem usa? Empresas que usam o banco de dados distribu´ Cassandra: ıdo Digg Facebook Twitter Reddit Rackspace Cloudkick Cisco SimpleGeo Ooyala OpenX ICT–UNIFESP — 12/43
  • 13. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Quem usa? O maior cluster em produ¸˜o tem aproximadamente 100TB de dados ca rodando em 150 m´quinas. a ICT–UNIFESP — 13/43
  • 14. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Clusteriza¸˜o ca Quando um Cluster ´ criado, um ponto importante ´ selecionar o e e particionador certo, existem dois: Random Partitioner (RP): Distribui aleat´riamente os pares o chave-valor atrav´s da rede, resultando em um bom balanceamento e de carga. Comparado a OPP, mais n´s tem que ser acessado para se o obter um n´mero de chaves. u Order Preserving Partitioner (OPP): Distribui os pares chave-valor de uma forma natural para que as chaves similares n˜o fiquem longe. a A vantagem ´ que menos n´s tem que ser acessado. A desvantagem e o ´ a distribui¸˜o desigual dos pares chave-valor. e ca ICT–UNIFESP — 14/43
  • 15. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Caracter´ ıstica Descentralizada: Cada n´ do cluster tem o mesmo papel. Dados o s˜o distribu´ a ıdos em todo o cluster (ent˜o cada n´ cont´m diferentes a o e tipos de dados), como n˜o h´ mestre cada n´ pode atender qualquer a a o pedido. ICT–UNIFESP — 15/43
  • 16. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Caracter´ ıstica Elasticidade: quando m´quinas s˜o adicionadas o tempo de escrita a a e leitura se comportam de forma linear, evitando inatividade ou interrup¸˜o. ca ICT–UNIFESP — 16/43
  • 17. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Caracter´ ıstica Tolerˆncia a Falhas: Os dados s˜o automaticamente replicados a a para v´rios n´s. a o N´s falhos podem ser substitu´ o ıdos sem inatividade do Cluster. ICT–UNIFESP — 17/43
  • 18. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Hardware Mem´ria o Os dados recentemente salvos s˜o escritos em tabelas na mem´ria a o (aka memtables) Dados antigos s˜o salvos em disco, mas os mais acessados s˜o a a mantidos no cache do sistema arquivos (M´quina virtual Java). a Quanto mais mem´ria melhor. o Em ambientes virtualizados ´ recomendado no m´ e ınimo 4GB. ICT–UNIFESP — 18/43
  • 19. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Hardware CPU Cassandra tem uma arquitetura de alta concorrˆncia. e Faz bom uso de m´ltiplos n´cleos. u u Se vocˆ estiver rodando em uma m´quina virtual, considere usar um e a Rackspace Cloud Server. ICT–UNIFESP — 19/43
  • 20. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Hardware Disco Ideal ter no m´ ınimo 2 discos. CommitLogDirectory DataFileDirectories Limita¸˜es do sistema de arquivos: co ext2/ext3 - 2TB XFS - 16TB(32 bit) praticamente ilimitado(64 bit) ICT–UNIFESP — 20/43
  • 21. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Hardware Nuvem (Cloud) A maioria das instala¸˜es do cassandra ´ feita em ambientes em co e nuvem. Rackspace Cloud Server e Amazon EC2. ICT–UNIFESP — 21/43
  • 22. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Linguagens suportadas Thrift API Linguagens: Python (Pycassa, Telephus) Java (Hector, Kundera, Pelops, Cassandrelle) .Net (Aquiles) Ruby (Cassandra) PHP (Cassandra PHP Client Library, phpcassa) ICT–UNIFESP — 22/43
  • 23. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Limita¸oes c˜ Todos os dados para uma unica linha deve caber (no disco) em uma ´ unica m´quina no cluster. ´ a Uma coluna de valor (column value) n˜o pode ser maior que 2GB. a Uma linha pode ter no m´ximo 2 bilh˜es de colunas. a o Os campos chaves e os nomes da colunas podem ter no m´ximo a 64K bytes. ICT–UNIFESP — 23/43
  • 24. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Tuning Manter o diret´rio de commit log e dados em diferentes discos. o Parˆmetros da m´quina virtual Java: a a -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Dcassandra.compaction.priority=1 - Diminui a prioridade da compacta¸˜o. ca -XX:+UseCompressedOops - Habilita compress˜o de referˆncias, a e reduz overhead em JVMs 64bit. ICT–UNIFESP — 24/43
  • 25. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Passo a Passo Para Instalar Cassandra Pr´ requisito: ´ necess´rio ter instalado uma m´quina virtual Java e e a a Baixar no site: http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache- cassandra-0.7.6-2-bin.tar.gz Descompactar este arquivo na pasta /opt Iniciar o servidor com o seguinte comando: bin/cassandra -f J´ estamos com o servidor rodando em estˆncia unica a a ´ ICT–UNIFESP — 25/43
  • 26. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Passo a Passo Para Instalar Cassandra Pr´ requisito: ´ necess´rio ter instalado uma m´quina virtual Java e e a a Baixar no site: http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache- cassandra-0.7.6-2-bin.tar.gz Descompactar este arquivo na pasta /opt Iniciar o servidor com o seguinte comando: bin/cassandra -f J´ estamos com o servidor rodando em estˆncia unica a a ´ ICT–UNIFESP — 25/43
  • 27. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Passo a Passo Para Instalar Cassandra Pr´ requisito: ´ necess´rio ter instalado uma m´quina virtual Java e e a a Baixar no site: http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache- cassandra-0.7.6-2-bin.tar.gz Descompactar este arquivo na pasta /opt Iniciar o servidor com o seguinte comando: bin/cassandra -f J´ estamos com o servidor rodando em estˆncia unica a a ´ ICT–UNIFESP — 25/43
  • 28. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Passo a Passo Para Instalar Cassandra Pr´ requisito: ´ necess´rio ter instalado uma m´quina virtual Java e e a a Baixar no site: http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache- cassandra-0.7.6-2-bin.tar.gz Descompactar este arquivo na pasta /opt Iniciar o servidor com o seguinte comando: bin/cassandra -f J´ estamos com o servidor rodando em estˆncia unica a a ´ ICT–UNIFESP — 25/43
  • 29. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Passo a Passo Para Instalar Cassandra Pr´ requisito: ´ necess´rio ter instalado uma m´quina virtual Java e e a a Baixar no site: http://ftp.unicamp.br/pub/apache//cassandra/0.7.6/apache- cassandra-0.7.6-2-bin.tar.gz Descompactar este arquivo na pasta /opt Iniciar o servidor com o seguinte comando: bin/cassandra -f J´ estamos com o servidor rodando em estˆncia unica a a ´ ICT–UNIFESP — 25/43
  • 30. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra ¸˜ DEMONSTRACAO... ICT–UNIFESP — 26/43
  • 31. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Script Inicial create keyspace u ni f e sp A p re s e nt a c ao ; use un if e s pA p r es e n ta c a o ; create column family User with comparator = UTF8Type and column_metadata =[ { column_name : first , validation_class : UTF8Type , index_type : KEYS } , { column_name : last , validation_class : UTF8Type } , { column_name : age , validation_class : UTF8Type , index_type : KEYS }]; ICT–UNIFESP — 27/43
  • 32. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Inser¸˜o ca connect localhost /9160; use un if e s pA p r es e n ta c a o ; # inserir set User [ ’ pfonseca ’ ][ ’ first ’] = ’ Paulo ’; set User [ ’ pfonseca ’ ][ ’ last ’] = ’ Fonseca ’; set User [ ’ pfonseca ’ ][ ’ age ’] = ’ 25 ’; get User [ ’ pfonseca ’ ]; ICT–UNIFESP — 28/43
  • 33. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Atualiza¸˜o ca connect localhost /9160; use un if e s pA p r es e n ta c a o ; # atualizar set User [ ’ pfonseca ’ ][ ’ age ’] = ’ 25 ’; set User [ ’ pfonseca ’ ][ ’ first ’] = ’ Paulo2 ’; ICT–UNIFESP — 29/43
  • 34. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Cassandra Exclus˜o a connect localhost /9160; use un if e s pA p r es e n ta c a o ; # deletar uma coluna del User [ ’ pfonseca ’ ][ ’ last ’ ]; # deletar uma linha del User [ ’ pfonseca ’ ]; ICT–UNIFESP — 30/43
  • 35. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Hector Cliente thrift de acesso para a linguagem Java. Licen¸a MIT. c Interface orientada a objetos de acesso ao Cassandra. Suporte a falhas. Pool de conex˜o. a Suporte a JMX (conex˜es dispon´ o ıveis, conex˜es ociosas, estat´ o ısticas de erro, etc.). ICT–UNIFESP — 31/43
  • 36. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Hector Inser¸˜o ca public void insert ( final String key , final String value ) throws Exception { execute ( new Command (){ public Void execute ( final Keyspace ks ) throws Exception { ks . insert ( key , createColumnPath ( COLUMN_NAME ) , bytes ( value )); return null ; } }); } ICT–UNIFESP — 32/43
  • 37. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Hector Busca public String get ( final String key ) throws Exception { return execute ( new Command (){ public String execute ( final Keyspace ks ) throws Exception { try { return string ( ks . getColumn ( key , createColumnPath ( COLUMN_NAME )). getValue ()); } catch ( NotFo undExc eption e ) { return null ; } } }); } ICT–UNIFESP — 33/43
  • 38. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Hector Exclus˜o a /∗ ∗ ∗ D e l e t e a key from c a s s a n d r a ∗/ public void delete ( final String key ) throws Exception { execute ( new Command (){ public Void execute ( final Keyspace ks ) throws Exception { ks . remove ( key , createColumnPath ( COLUMN_NAME )); return null ; } }); } ICT–UNIFESP — 34/43
  • 39. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Objetivos Levantar um servidor de persistˆncia No-SQL; e Integrar com Tomcat; Servi¸o tem que formar um cluster e os dados sejam armazenados c replicados; Se novo servidor ´ instanciado – deve haver balan¸o de carga e c autom´tico na replica¸˜o dos dados; a ca Salva XML da pesquisa; Salva uma pesquisa, retorna uma chave; Recupera uma pesquisa baseada na chave; Recupera todas as chaves armazenadas. ICT–UNIFESP — 35/43
  • 40. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Modelo ICT–UNIFESP — 36/43
  • 41. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Projeto Configura¸˜o para criar cluster em Cassandra ca Configurar o arquivo cassandra/conf/cassandra.yaml Server: -Alterar os campos seeds e listen address para o ip de rede da m´quina a - Alterar o campo rpc address para 0.0.0.0 ICT–UNIFESP — 37/43
  • 42. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Projeto Configura¸˜o para criar cluster em Cassandra ca Configurar o arquivo cassandra/conf/cassandra.yaml Clientes: - Alterar o campo seeds: para o ip do servidor - Alterar o campo listen address para o ip de rede da m´quina a - Alterar o campo rpc address para 0.0.0.0 Ap´s realizar a configura¸˜o basta reiniciar o servidor e os clientes o ca para que o cluster entre em funcionamento. ICT–UNIFESP — 38/43
  • 43. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Problemas Encontrados Biblioteca para uso do Thrift -> Solu¸˜o: uso do Hector; ca Melhoria no uso do Hector; Colocando o Cassandra como background ele p´ra de responder; a Pouca documenta¸˜o sobre o Cassandra. ca ICT–UNIFESP — 39/43
  • 44. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Problemas Encontrados Biblioteca para uso do Thrift -> Solu¸˜o: uso do Hector; ca Melhoria no uso do Hector; Colocando o Cassandra como background ele p´ra de responder; a Pouca documenta¸˜o sobre o Cassandra. ca ICT–UNIFESP — 39/43
  • 45. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Problemas Encontrados Biblioteca para uso do Thrift -> Solu¸˜o: uso do Hector; ca Melhoria no uso do Hector; Colocando o Cassandra como background ele p´ra de responder; a Pouca documenta¸˜o sobre o Cassandra. ca ICT–UNIFESP — 39/43
  • 46. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Problemas Encontrados Biblioteca para uso do Thrift -> Solu¸˜o: uso do Hector; ca Melhoria no uso do Hector; Colocando o Cassandra como background ele p´ra de responder; a Pouca documenta¸˜o sobre o Cassandra. ca ICT–UNIFESP — 39/43
  • 47. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Problemas Encontrados Nenhuma instancia do cluster responde quando um dos clientes n˜o a est´ em execu¸˜o; a ca Melhorias no pool de conex˜o do hector. a ICT–UNIFESP — 40/43
  • 48. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Problemas Encontrados Nenhuma instancia do cluster responde quando um dos clientes n˜o a est´ em execu¸˜o; a ca Melhorias no pool de conex˜o do hector. a ICT–UNIFESP — 40/43
  • 49. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Conclus˜o a Banco de dados do tipo NoSQL ´ um assunto muito amplo e ainda h´ e a muito mais a ser explorado, os t´picos abordados nesta apresenta¸˜o s˜o o ca a uma pequena parte de uma diferente forma de se pensar na constru¸˜o ca de sistemas. ICT–UNIFESP — 41/43
  • 50. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a D´vidas u ”No one gets fired for choosing Apache’s stuff.” ICT–UNIFESP — 42/43
  • 51. NoSQL Cassandra Passo a Passo Para Instalar Cassandra Hector Projeto Problemas Encontrados Conclus˜o a Referencias http://cassandra.apache.org/ http://wiki.apache.org/cassandra/CassandraHardware http://wiki.apache.org/cassandra/ClientOptions http://wiki.apache.org/cassandra/CassandraLimitations http://wiki.apache.org/cassandra/PerformanceTuning http://github.com/pycassa/pycassa http://github.com/driftx/Telephus http://aquiles.codeplex.com/ http://github.com/rantav/hector http://github.com/fauna/cassandra http://github.com/s7/scale7-pelops http://demoiselle.sf.net/component/demoiselle-cassandra/ https://github.com/kallaspriit/Cassandra- PHP-Client-Library/ ICT–UNIFESP — 43/43