Histórico da Página
Informações | ||
---|---|---|
| ||
Esta página foi revisada para considerar as novas configurações do serviço de indexação no fluig para a atualização Water Drop (1.6.4). Caso possua uma atualização 1.6.0 à 1.6.3 acesse: Como configurar o fluig Indexer para executar em cluster da release 1.6.0 à 1.6.3?. Para atualizações 1.5.6 à 1.5.13 acesse: Como configurar o fluig Indexer para executar em cluster da release 1.5.6 à 1.5.13?. Para Em atualizações 1.5.6 ou inferior acesse: Como configurar o fluig Indexer para executar em cluster na release 1.5.6 ou inferior?. |
Índice
Índice | ||||||||
---|---|---|---|---|---|---|---|---|
|
...
As instruções a seguir completarão a instalação de um fluig Indexer em um cluster de servidores dedicados, continuando as instruções iniciadas na página Fluig Indexer em Servidor Dedicado.
...
Sendo assim, as configurações apresentadas nesta página são consideradas avançadas, com maior necessidade de administração do ambiente , e recomendadas apenas em casos específicos, quando a busca é uma funcionalidade crítica, ou quando se faz necessário garantir a alta disponibilidade deste serviço.
...
O serviço de indexação na plataforma é realizado pelo Apache® Solr. Em um ambiente de alta disponibilidade, são necessárias mais máquinas com este serviço rodando para, no caso de uma delas falhar, ter outra(s) para continuar processando as requisições , e, neste caso, o gerenciamento destas requisições é ser realizado pelo Apache® ZooKeeper.
Com isso, para Para garantir a alta disponibilidade desta funcionalidade, é necessário que exista redundância em ambos os serviços: Apache® Solr para indexação/busca e Apache® ZooKeeper para gerenciamento das configurações de indexação e das requisições. Também é necessário que todas as máquinas do cluster sejam acessíveis entre si (estejam na mesma rede).
...
Por exemplo, se existirem apenas dois servidores e um deles ficar indisponível, apenas 50% dos servidores estarão saudáveis e, e como isso não é a maioria, o cluster será incapaz de processar as requisições. Por outro lado, se existirem três servidores e um ficar indisponível, ainda restarão dois saudáveis, ou 66%, que atende atendendo ao critério de maioria. Por isso esse motivo é recomendado um número ímpar de servidores executando o Apache® ZooKeeper.
...
O primeiro passo é efetuar o download da versão 3.4.10 do Apache® ZooKeeper, que pode ser obtida aqui: no endereço https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/
Após efetuar o download e extrair o arquivo compactado no diretório de sua preferência (<ZOOKEEPER_HOME>) em [ZOOKEEPER_HOME] em cada uma das máquinas do cluster, é necessário criar, caso ainda não exista, o arquivo <ZOOKEEPER[ZOOKEEPER_HOME>HOME]/conf/zoo.cfg com o seguinte conteúdo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
tickTime=2000 dataDir=/var/lib/zookeeperdata clientPort=2181 initLimit=5 syncLimit=2 server.1=<server1_address>:2888:3888 server.2=<server2_address>:2888:3888 server.3=<server3_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 e 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 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 precisando 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 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.
Com essa configuração em cada máquina do cluster, basta iniciá-las com o seguinte comando:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
cd <ZOOKEEPER_HOME>/bin Linux: zkServer.sh start zoo.cfg Windows: |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
cd <ZOOKEEPER_HOME>/bin
zkServer.cmd start zoo.cfg |
...
A instalação do Apache® Solr pode ser realizada através da mídia de instalação instalador do fluig no modo caractere, seguindo o passo a passo para instalar somente o servidor de indexação em Windows ou Linux.
Para existir redundância, devem existir conter no mínimo duas máquinas executando este serviço de indexação, podendo estas serem as mesmas máquinas que executam o serviço de gerenciamento (ZooKeeper) , ou máquinas distintas na mesma rede, dependendo da arquitetura desejada de tolerância à falhas.
...
- No caso de um ambiente de alta disponibilidade, é necessário utilizar o modo Cloud, apontando para os servidores e portas onde estão sendo executados os serviços de gerenciamento das configurações e requisições (ZooKeeper) através do parâmetro '-z', conforme exemplo abaixo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<SOLR_DIR>/bin/solr start -cloud -z <server1_address>:2181,<server2_address>:2181,<server3_address>:2181 |
Neste caso, os endereços <server1_address>, <server2_address> e <server3_address> 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.
- Se desejar subir o fluig Indexer em uma porta diferente da padrão (8983), adicione o parâmetro "'-p" ' e informe a porta.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<SOLR_DIR>/bin/solr start -cloud -z <server1_address>:2181,<server2_address>:2181,<server3_address>:2181 -p 18983 |
- Para interromper o serviço pode-se utilizar o comando abaixo:
Bloco de código | |||||
---|---|---|---|---|---|
|
...
| |
<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 | ||
---|---|---|
| ||
É 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
...
no 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 | ||||||
---|---|---|---|---|---|---|
| ||||||
<SOLR_DIR>/bin/solr zk upconfig -d fluig -n fluig -z <server1_address>:2181,<server2_address>:2181,<server3_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,
...
- conforme detalhado 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 quantidade 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 | ||||||
---|---|---|---|---|---|---|
| ||||||
<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
...
- ' corresponde 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'.
Configurando o fluig para usar o Indexer
Se o fluig tiver em execução, siga os passos abaixo:
Deck of Cards | |||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||
|
...
Se o fluig estiver parado, siga os passos abaixo:
Deck of Cards | |||||||||
---|---|---|---|---|---|---|---|---|---|
| |||||||||
|
...
| html/xml
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|