2. #DevoxxFR
Un peu de moi
Duy Hai DOAN
Evangéliste technique & consultant Apache Cassandra
• talks, meetups, confs
• projet open-source (Achilles, Apache Zeppelin)
• Des questions sur Apache Cassandra/Apache Zeppelin ?
☞ duy_hai.doan@datastax.com
☞ @doanduyhai
2
3. #DevoxxFR
Datastax
• Fondé en Avril 2010
• Plus gros pourvoyeur de contributeur à Apache Cassandra™
• Bureaux européens à Londres, Paris et Berlin
• Datastax Enterprise = OSS Cassandra + fonctionnalités+++
3
13. #DevoxxFR
Cycle de vie d’un interpréteur
Réception des commandes/données en entrée
• texte brut
• formulaire de données
Traiter les commandes/données par un système externe
Formatter la réponse avec une méthode d’affichage Zeppelin
Renvoyer la réponse au Zeppelin-engine
13
18. #DevoxxFR
Étapes
Créer une classe qui étend la classe Interpreter de base
L’enregister dans un bloc static 😳😳😳
En option, définir quelques paramètres par défaut
18
static {!
Interpreter.register("Nom_interpréteur",!
ClasseInterpreteur.class.getName());!
}!
static {!
Interpreter.register("Nom_interpréteur",!
ClasseInterpreteur.class.getName(),!
new InterpreterPropertyBuilder()!
.add("prop1", "val1")...build());!
}!
19. #DevoxxFR
Pour déclarer son interpréteur en dûr
• Éditer l’enum ZeppelinConfiguration.ConfVars
• Ajouter le nom de classe de son interpréteur dans la propriété
ZEPPELIN_INTERPRETERS
19
20. #DevoxxFR
Ou déclarer son interpréteur en conf
• Copier conf/zeppelin-site.xml depuis conf/zeppelin-site.xml.template
• Ajouer son interpréteur à la propriété zeppelin.interpreters
20
<property>!
<name>zeppelin.interpreters</name>!
<value>org.apache.zeppelin.spark.SparkInterpreter,!
org.apache.zeppelin.spark.PySparkInterpreter,!
org.apache.zeppelin.spark.SparkSqlInterpreter,!
org.apache.zeppelin.spark.DepInterpreter,!
org.apache.zeppelin.markdown.Markdown,!
org.apache.zeppelin.shell.ShellInterpreter,!
org.apache.zeppelin.hive.HiveInterpreter,!
fr.moi.MonInterpreteurToutPouri!
</value>!
</property>!