Pesquisar este blog

sábado, 22 de novembro de 2014

Operações básicas com o Cliente do Apache ZooKeeper

O Apache ZooKeeper vem com um console de uso interativo que pode ser usado como cliente do apache do seu servidor, o que facilita muito os testes do serviço. Em um aplicativo real você deve utilizar uma biblioteca, o que está disponível em Python, Java, C e Perl.
Neste post vamos brincar um pouco com o console para demonstrar o seu funcionamento.
Para executar o cliente do ZooKeeper basta que você execute o programa zookeeper-client. O prompt inicial poderá ficar escondido devido aos logs de execução, então basta que você aperte o ENTER para ver o console. Tente digitar ls /, que serve para listar os arquivos do servidor ou help para descobrir os comandos disponíveis neste console.
Isto é similar a um shell de comando do sistema de arquivos de um Sistema baseado no Unix. O ZooKeeper armazena dados em uma hierarquia de znodes (nós z). Nesta hierarquia de nós cada um pode conter dados (por exemplo um arquivo) e também conter um filho (como um diretório), no ZooKeeper estes nós foram construidos para trabalhar com uma pequena quantidade de dados, o limite padrão é 1MB por nó.

Criando ZNodes no ZooKeeper

Para armazenar dados no ZooKeeper devermos criar um znode, o que é bem simples, como exemplo vamos criar um znode pai para armazenar um znode filho de exemplo.
[zk: localhost:2181(CONNECTED) 2] create /pai ''
Created /pai
[zk: localhost:2181(CONNECTED) 3] create /pai/exemplo 'ExemploDSD!'
Created /pai/exemplo
Lembrando que não há nenhuma relação entre o nome do znode e o seu conteúdo. Como foi mostrado acima, o comando create é responsável por criar um znode. Eles funcionam de uma maneira bem parecida com os diretórios que temos nos sistemas de arquivos, quando você criar um subdiretório, neste caso um znode filho, basta passar o nome do caminho completo dele, no caso acima pai que será o znode pai, e pai/exemplo será criado um znode exemplo dentro do znode pai.


Armazenamento de dados com o ZooKeeper (Leitura e Alteração)

Para ler o conteúdo de um nó no ZooKeeper deve-se utilizar o comando Get, ao digitar este comando o conteúdo do znode será impresso na primeira linha do console, como mostrado abaixo:






[zk: localhost:2181(CONNECTED) 4] get /pai/exemplo
'ExemploDSD!'
dataVersion = 0
 Também é possível alterarmos o conteúdo de um nó após a sua criação, note que após esta alteração o conteúdo da dataVersion será modificado, pois este atribudo é quem determina a versão do dado contido naquele nó. Para alterarmos o valor de um znode deveremos utilizar o comando set.
[zk: localhost:2181(CONNECTED) 5] set /pai/exemplo 'Exame!'
dataVersion = 1
[zk: localhost:2181(CONNECTED) 6] get /pai/exemplo
'Exame!'
dataVersion = 1

Apagando dados no ZooKeeper

Para apagarmos dados do ZooKeeper deveremos utilizar o comando delete. Assim como nos diretórios, znodes pais não podem ser apagados, a não ser que todos os seus filhos sejam apagados antes.
[zk: localhost:2181(CONNECTED) 7] delete /pai/exemplo
[zk: localhost:2181(CONNECTED) 8] ls /pai
[]

Nenhum comentário:

Postar um comentário