Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languagebash
tickTime=2000
dataDir=/var/lib/zookeeperdata
clientPort=2181
initLimit=5
syncLimit=2
server.1=<server1_ip>address>:2888:3888
server.2=<server2_ip>address>:2888:3888
server.3=<server3_ip>address>:2888:3888
  • tickTime: corresponde ao tempo em milisegundos entre cada tick, sendo que uma das validações para determinar se um nó está disponível é de dois ticks (similar ao ping para verificar se uma máquina é encontrada na rede). Se dois ticks consecutivos não obtiverem resposta, ocorre timeout e a máquina é considerada indisponível.
  • dataDir: aponta o diretório onde serão armazenadas as informações referentes ao cluster. No início este diretório deve estar vazio, mas com permissão de escrita pelo usuário que irá iniciar o ZooKeeper.
  • clientPort: corresponde à porta que será utilizada pelo Apache® Solr.
  • initLimit: quantidade de tempo (em ticks) para que uma máquina com ZooKeeper se conecte e sincronize com a máquina que foi eleita líder. Neste caso, são 5 ticks com 2000 milisegundos cada, totalizando 10 segundos. Este valor pode ser incrementado sob demanda, se a quantidade de informações gerenciadas pelo ZooKeeper for elevada.
  • syncLimit: quantidade de tempo (em ticks) que uma máquina com ZooKeeper pode estar atrasada em relação à líder. Se uma máquina não conseguir sincronizar com a líder neste intervalo, ela será descartada do cluster.
  • server.X: Estes são os IDs e localização (endereço IP na rede interna) de todos os nós do cluster, e as portas nas quais eles comunicam-se entre si. O ID identifica cada nó do cluster, e também precisa ser referenciado em um arquivo de nome "myid", dentro do diretório definido na propriedade dataDir. Neste exemplo seria necessário criar o arquivo /var/lib/zookeeperdata/myid com o conteúdo "1" (sem aspas) para a máquina configurada na propriedade server.1, o mesmo arquivo com conteúdo "2" (sem aspas) para a máquina configurada na propriedade server.2, e assim por diante, para cada máquina existente no cluster. As portas 2888 e 3888 são as portas que serão utilizadas para comunicação entre cada uma das máquinas do cluster e podem ser alteradas de acordo com a necessidade, desde que informadas na linha correspondete ao servidor em questão, no arquivo zoo.cfg de todas as máquinas do cluster.

...

Bloco de código
languagebash
titleInicialização Solr modo cloud
<SOLR_DIR>/bin/solr start -cloud -z <server1_ip>address>:2181,<server2_ip>address>:2181,<server3_ip>address>:2181

Neste caso, os endereços <server1_ip>, <server2_ip> e <server3_ip> são os mesmo informados anteriormente nos parâmetros server.X do arquivo zoo.cfg, e a porta 2181 corresponde ao parâmetro clientPort informado nesse mesmo arquivo.

...

Bloco de código
languagebash
titleInicialização Solr modo cloud
<SOLR_DIR>/bin/solr start -cloud -z <server1_ip>address>:2181,<server2_ip>address>:2181,<server3_ip>address>:2181 -p 18983
  • Para interromper o serviço pode-se utilizar o comando abaixo:


Bloco de código
languagebash
titleInterromper Solr
<SOLR_DIR>/bin/solr stop -all
  • Para facilitar, podem ser criados arquivos de script de acordo com seu sistema operacional (.bat ou .sh) para reutilização destes comandos.
Nota
titleAtenção!

É importante que o serviço de gerenciamento (ZooKeeper) seja iniciado antes do serviço de indexação (Solr), caso contrário este último irá considerar que não há serviço de gerenciamento disponível.


Configurações de indexação

Quando o Apache® Solr é executado em modo Cloud, as configurações do índice são armazenadas e gerenciadas pelo Apache® ZooKeeper. Por isso, primeiramente é necessário publicar as configurações utilizadas pela plataforma. Estas configurações são instaladas juntamente com o serviço de indexação, e para publicá-las no serviço de gerenciamento (ZooKeeper) pode-se utilizar o comando abaixo: 

Bloco de código
languagebash
titlePublicando configurações de indexação da plataforma
<SOLR_DIR>/bin/solr zk upconfig -d fluig -n fluig -z <server1_ip>address>:2181,<server2_ip>address>:2181,<server3_ip>address>:2181
  • O parâmetro "-d fluig" corresponde ao nome do diretório onde estão armazenadas as configurações utilizadas pela plataforma, instaladas por padrão juntamente com o serviço de indexação, no diretório "fluig". O comando irá efetuar o upload deste diretório para os endereços informados no parâmetro -z.
  • O parâmetro "-n fluig" corresponde ao nome que esta configuração irá receber no serviço de gerenciamento (ZooKeeper), e será utilizado no próximo passo (criação da collection)
  • O parâmetro "-z" informa a lista de serviços de gerenciamento (ZooKeeper) onde serão publicadas estas cofigurações, da mesma forma já detalhada anteriormente.

Criação de collection

Cada empresa (tenant) criada no fluig é mapeada para uma collection no Apache® Solr. Quando em cluster, é necessário definir a quntidade de nós (shards) em que o índice será dividido, e o fator de replicação (replicationFactor) das informações referentes à esta collection, através do seguinte comando:

Bloco de código
languagebash
titleCriando collection
<SOLR_DIR>/bin/solr create_collection -c <ID do Tenant> -d fluig -shards 1 -replicationFactor 2
  • Informe o código numérico que será usado para a empresa criada no fluig em <ID do Tenant>.
  • Neste caso o parâmetro -d correspondo ao nome da configuração armazenada no ZooKeeper (parâmetro -n do comando utilizado anteriormente para upload).
  • Informe o número total de instâncias do Apache® Solr após o parâmetro -replicationFactor.


...