1. Cassandra Lan Party
(Hands on Cassandra)
Florent Ramière - @framiere
Jérémy Sevellec - @jsevellec
Nicolas Romanetti - @nromanetti
Sylvain Lebresne - @pcmanus
1
2. Check List participant
• Un portable avec prise RJ-45
• Idéalement un câble ethernet. Nous pouvons vous en prêter si vous n’
n’avez pas.
• Désactivez tout de suite le WIFI
• Branchez votre portable sur secteur seulement si pas assez de batterie
2
3. Cassandra Lan Party
• Monter un cluster réparti sur 3 DataCenter
• Just for fun!
• A New York, ils ont fait un cluster de 21 noeuds...
3
4. Merci pour le prêt de matériel!
• Euratechnologies : Parc d’activités TIC et Incubateur sur Lille
• http://www.euratechnologies.com/
• Thomas Recloux : Indépendant et Ch’ti JUG (Co)leader
• @thomasrecloux
4
5. Matériel
• Nous disposons de 4 switches reliés entre eux
• Quelques prises multiples
• Quelques câbles ethernet
• Et vous!
5
6. Comment on s’organise
1. Mise en place du réseau
2. Installation / Configuration de Cassandra
3. Démarrage du cluster
4. Have Fun :-)
Si vous avez un doute ou êtes perdu : demandez au STAFF, on est là pour ça!
6
8. Ca va donner ça :
WORLD
Lille - 10.1.1.z Paris - 10.2.1.z Ajaccio - 10.3.1.z
10.1.1.1 10.1.1.2 10.2.1.1 10.2.1.2 10.3.1.1 10.3.1.2
Jérémy ...
... Florent ...
... Sylvain ... ...
8
9. On commence
• Groupez-vous physiquement par Data Center (un switch = un DC)
• Idéalement: même nombre de machines par Data Center
9
10. Attribution des IPs
• votre ip sur un post-it avec votre nom et nous vous raccordons à un switch :
10.1.1.3
10.1.1.1
Jean Claude
Jérémy
10.1.1.2 ...
Chuck
10
11. Conf Réseau
• Conf réseau :
• Pour tester si tout est ok
• 10.<votreDC>.1.<vous>
• ping : 10.1.1.1
• Masque de sous réseau : 255.0.0.0
• ping : 10.2.1.1
• Pas de proxy
• ping : 10.3.1.1
• Pas de routeur
• browser : http://10.1.1.0:8080
• Attention: NE DÉMARREZ PAS CASSANDRA
11
13. Récupération de cassandra
• Sont disponibles sur quelques clés USB ou sur le site http://10.0.0.1:8080
• JVM 1.6 pour windows 64 / etc...
• Distribution DataStax de Cassandra
• On fait passer les clés ou on télécharge sur le site...
• On décrompresse dans un répertoire à votre convenance
• Attention: NE DÉMARREZ PAS CASSANDRA, NI OPSCENTER
13
14. Post-installation Cassandra
• sudo mkdir /var/lib/cassandra (avec les droits d’écritures :-))
• sudo mkdir /var/log/cassandra (avec les droits d’écritures :-))
• editez conf/log4j-*.properties et passez le log level à DEBUG
• editez conf/cassandra.yaml
- seeds: "10.1.1.1,10.2.1.1,10.3.1.1"
listen_address: votreIp
rpc_address: votreIp
endpoint_snitch: org.apache.cassandra.locator.RackInferringSnitch (il est en
commentaire dans le fichier de conf)
Attention: NE DÉMARREZ PAS CASSANDRA, NI OPSCENTER
14
15. Attribution du Token
• Ouvrez http://10.1.1.0:8080/ et copiez le token correspondant à votre IP
• Collez ce token dans conf/cassandra.yaml
initial_token: votreToken
• Faites valider par votre conf par votre voisin
• Attention: NE DÉMARREZ PAS CASSANDRA, NI OPSCENTER
15
16. Démarrage de Cassandra
• D’abord : démarrage des « seed node » (un par
datacenter)
• Attendre le Go du Staff
• Depuis le répertoire d’installation de Cassandra
•bin/cassandra -f
16
17. Création du Keyspace
• 1 seule personne crée le keyspace et la column family (Nicolas)
• create keyspace ks with placement_strategy = 'NetworkTopologyStrategy'
and strategy_options ={1:3,2:3,3:3};
• use ks;
• create column family party with key_validation_class = 'UTF8Type' and
comparator = 'UTF8Type' and default_validation_class = 'UTF8Type';
• create column family user with key_validation_class = 'UTF8Type' and
comparator = 'UTF8Type' and default_validation_class = 'UTF8Type';
17
18. Quelques commandes pour vous
• visualiser l’état du cluster : bin/nodetool -h <votreIP> ring
• Manipuler des données : bin/cassandra-cli -h <votreIp>
• use ks; row key Colum name Colum value
• set party['devoxx']['<votreIp>']=<votre nom et prenom>;
• list party;
On s’assure que tout le monde a réussi à ajouter sa colonne
18
19. Remplisser votre fiche user!
• use ks;
• set user['votre@email']['twitter']= '@votretwitter';
• set user['votre@email']['favorite director']= 'Quentin Tarantino';
• set user['votre@email']['favorite band']= 'The Rolling Stones';
• etc...
• list user;
19