VT2020-AppachePinot-Demo

= Installation =

Certains prérequis doivent être remplis pour la démonstration :


 * Installer à minima Java 9
 * Installer Appache Maeven ( https://maven.apache.org/download.cgi )

Pour pouvoir effectuer la démonstration vous devrez télécharger les logiciels suivant :


 * Les données test fournies par Apache Pinot ( https://github.com/npawar/pinot-tutorial )
 * Télécharger la dernière version stable de Apache Pinot ( https://pinot.apache.org )
 * Installer ZooInspector ( https://github.com/zzhang5/zooinspector )

= Déploiement d'un cluster Pinot =

On commence par lancer le zookeeper : bin/pinot-admin.sh StartZookeeper -zkPort 2181

On déploie ensuite les deux controlleurs : bin/pinot-admin.sh StartController -zkAddress localhost:2181 -clusterName PinotCluster -controllerPort 9001 bin/pinot-admin.sh StartController -zkAddress localhost:2181 -clusterName PinotCluster -controllerPort 9002

On déploie ensuite les deux brokers : bin/pinot-admin.sh StartBroker -zkAddress localhost:2181 -clusterName PinotCluster -brokerPort 7001 bin/pinot-admin.sh StartBroker -zkAddress localhost:2181 -clusterName PinotCluster -brokerPort 7002

On lance enfin les deux serveurs : in/pinot-admin.sh StartServer -zkAddress localhost:2181 -clusterName PinotCluster -serverPort 8001 -serverAdminPort 8011 bin/pinot-admin.sh StartServer -zkAddress localhost:2181 -clusterName PinotCluster -serverPort 8002 -serverAdminPort 8012

= Test =

Tout d'abord nous configurons une table et son shéma sur notre cluster :

bin/pinot-admin.sh AddTable -tableConfigFile /home/remy/Bureau/testVT/pinot-tutorial/transcript/transcript-table-offline.json -schemaFile /home/remy/Bureau/testVT/pinot-tutorial/transcript/transcript-schema.json -controllerPort 9001 -exec

Et enfin nous allons injecter des données dans cette tabe : bin/pinot-admin.sh LaunchDataIngestionJob -jobSpecFile /home/remy/Bureau/testVT/pinot-tutorial/transcript/batch-job-spec.yml

Maintenant rendez-vous sur https://localhost:9001 pour pouvoir effectuer quelque requêtes SQL sur notre table et pouvoir avoir une vue globlale de notre architecture.

Nous allons pour finir tester la résilience du système en coupant l'un des deux serveurs puis vérifier que Pinot peut continuer a gérer des requêtes.