Apache Zeppelin: Difference between revisions
(6 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
Apache Zeppelin est projet Apache sous licence open-source Apache2. Il est actuellement en incubation. |
Apache Zeppelin est projet Apache sous licence open-source Apache2. Il est actuellement en incubation. |
||
Pour rappel, l'incubateur Apache est une passerelle de validation pour tout logiciel libre susceptible de devenir un projet à part entière de la fondation Apache |
Pour rappel, l'incubateur Apache est une passerelle de validation pour tout logiciel libre susceptible de devenir un projet à part entière de la fondation Apache. |
||
Le projet fournit une interface web (notebook) qui permet d'analyser et mettre en forme visuellement les données (tableaux, graphes...) selon différents backend appelés interpreteurs. |
Le projet fournit une interface web (notebook) qui permet d'analyser et mettre en forme visuellement les données (tableaux, graphes...) selon différents backend appelés interpreteurs. |
||
[[File:Multiple_language_backend.png]] |
|||
https://zeppelin.incubator.apache.org/assets/themes/zeppelin/img/screenshots/multiple_language_backend.png |
|||
=== Utilisation === |
=== Utilisation === |
||
Line 16: | Line 14: | ||
Les interpréteurs sont sous forme de plugins. Il est donc possible d'en ajouter une infinité. On peut par exemple exploiter les données venant de PostgreSQL ou d'ElasticSearch. On spécifie l'interpréteur que l'on choisit en début de ligne. |
Les interpréteurs sont sous forme de plugins. Il est donc possible d'en ajouter une infinité. On peut par exemple exploiter les données venant de PostgreSQL ou d'ElasticSearch. On spécifie l'interpréteur que l'on choisit en début de ligne. |
||
Une fois que l'on |
Une fois que l'on a choisi son interpréteu et à partir du moment où il affiche des données pouvant être formatées dans un tableau, il est possible de les mettre en forme dans un graphique. On peut aussi directement afficher des données mises en forme manuellement : |
||
https://zeppelin.incubator.apache.org/assets/themes/zeppelin/img/screenshots/display_table.png |
|||
[[File:Display table.png]] |
|||
Ou bien de différents interpréteurs : |
Ou bien de différents interpréteurs : |
||
Line 31: | Line 30: | ||
Les données peuvent ensuite être affichées de manière interactives : |
Les données peuvent ensuite être affichées de manière interactives : |
||
[[File:Elasticsearch-search-pie.png]] |
|||
https://zeppelin.incubator.apache.org/docs/0.5.6-incubating/assets/themes/zeppelin/img/docs-img/elasticsearch-search-pie.png |
|||
Zeppelin intègre directement Spark qui est un framework open source de calcul distribué directement en mémoire vive. |
Zeppelin intègre directement Spark qui est un framework open source de calcul distribué directement en mémoire vive. |
||
Line 37: | Line 36: | ||
Il est du coup possible de faire jouer des scripts : |
Il est du coup possible de faire jouer des scripts : |
||
<pre> |
|||
val bankText = sc.textFile("yourPath/bank/bank-full.csv") |
|||
case class Bank(age:Integer, job:String, marital : String, education : String, balance : Integer) |
|||
// split each line, filter out header (starts with "age"), and map it into Bank case class |
|||
val bank = bankText.map(s=>s.split(";")).filter(s=>s(0)!="\"age\"").map( |
|||
s=>Bank(s(0).toInt, |
|||
s(1).replaceAll("\"", ""), |
|||
s(2).replaceAll("\"", ""), |
|||
s(3).replaceAll("\"", ""), |
|||
s(5).replaceAll("\"", "").toInt |
|||
) |
) |
||
) |
|||
// convert to DataFrame and create temporal table |
// convert to DataFrame and create temporal table |
||
bank.toDF().registerTempTable("bank") |
bank.toDF().registerTempTable("bank") |
||
</pre> |
|||
Dans |
Dans cet exemple on parse le CSV pour créer des objets de type Bank. |
||
Puis |
Puis on peut y appliquer des requêtes. Par exemple, si on veut avoir la distribution d'âge d'une banque : |
||
%sql select age, count(1) from bank where age < 30 group by age order by age |
%sql select age, count(1) from bank where age < 30 group by age order by age |
||
=== Installation === |
=== Installation === |
||
Télécharger le dernier binaire: |
Télécharger le dernier binaire: https://zeppelin.incubator.apache.org/download.html |
||
Décompresser le tgz puis se déplacer dans le dossier. |
Décompresser le tgz puis se déplacer dans le dossier. |
||
Line 72: | Line 71: | ||
bin/zeppelin-daemon.sh start |
bin/zeppelin-daemon.sh start |
||
Si tout s'est bien passé, il suffit d'ensuite visiter |
Si tout s'est bien passé, il suffit d'ensuite visiter http://localhost:8080 dans le navigateur. |
||
Latest revision as of 12:11, 2 April 2016
Apache Zeppelin (incubating)
Synthèse
Apache Zeppelin est projet Apache sous licence open-source Apache2. Il est actuellement en incubation. Pour rappel, l'incubateur Apache est une passerelle de validation pour tout logiciel libre susceptible de devenir un projet à part entière de la fondation Apache.
Le projet fournit une interface web (notebook) qui permet d'analyser et mettre en forme visuellement les données (tableaux, graphes...) selon différents backend appelés interpreteurs.
Utilisation
Les interpréteurs sont sous forme de plugins. Il est donc possible d'en ajouter une infinité. On peut par exemple exploiter les données venant de PostgreSQL ou d'ElasticSearch. On spécifie l'interpréteur que l'on choisit en début de ligne.
Une fois que l'on a choisi son interpréteu et à partir du moment où il affiche des données pouvant être formatées dans un tableau, il est possible de les mettre en forme dans un graphique. On peut aussi directement afficher des données mises en forme manuellement :
Ou bien de différents interpréteurs :
%psql.sql select * from mytable;
%elasticsearch get /index/type/id
Les données peuvent ensuite être affichées de manière interactives :
Zeppelin intègre directement Spark qui est un framework open source de calcul distribué directement en mémoire vive.
Il est du coup possible de faire jouer des scripts :
val bankText = sc.textFile("yourPath/bank/bank-full.csv") case class Bank(age:Integer, job:String, marital : String, education : String, balance : Integer) // split each line, filter out header (starts with "age"), and map it into Bank case class val bank = bankText.map(s=>s.split(";")).filter(s=>s(0)!="\"age\"").map( s=>Bank(s(0).toInt, s(1).replaceAll("\"", ""), s(2).replaceAll("\"", ""), s(3).replaceAll("\"", ""), s(5).replaceAll("\"", "").toInt ) ) // convert to DataFrame and create temporal table bank.toDF().registerTempTable("bank")
Dans cet exemple on parse le CSV pour créer des objets de type Bank.
Puis on peut y appliquer des requêtes. Par exemple, si on veut avoir la distribution d'âge d'une banque :
%sql select age, count(1) from bank where age < 30 group by age order by age
Installation
Télécharger le dernier binaire: https://zeppelin.incubator.apache.org/download.html
Décompresser le tgz puis se déplacer dans le dossier.
Pour démarrer Zeppelin :
bin/zeppelin-daemon.sh start
Si tout s'est bien passé, il suffit d'ensuite visiter http://localhost:8080 dans le navigateur.
Pour stopper Zeppelin :
bin/zeppelin-daemon.sh stop