Apache flink - prise en main rapide

595 vues

Publié le

• Comment installer Apache Flink sur votre PC ou Mac et comment se familiariser avec CLI, Job Client Web interface et Job Manager Web Interface?

• Comment développer une application Big Data en Java / Scala en utilisant un IDE?
• Comment développer avec Apache Flink en mode interactif avec Flink Shell ou Zeppelin Notebook (Scala)?

http://www.meetup.com/fr/Paris-Apache-Flink-Meetup/events/225577395/

Publié dans : Données & analyses
0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
595
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
23
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Apache flink - prise en main rapide

  1. 1. Apache Flink® Prise en main rapide http://www.meetup.com/fr/Paris-Apache-Flink-Meetup Bilal BALTAGI @bilal_baltagi 29/10/2015
  2. 2. Plan 1. Installation & config (en local) 2. Exécution des exemples : CLI & Job Client Web interface 3. Développement avec un IDE : Batch Vs Streaming 4. Développement interactif : Scala shell Vs Zeppelin 2
  3. 3. Installation en local : Pré requis 1. Vérification de la présence de Java : a. $ java -version #Linux, OS X ou Windows Installer JAVA et configurer JAVA_HOME ou %PATH%: ==>https://www.java.com/fr/ ==>http://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/index.html 3
  4. 4. Installation en local : Téléchargement 1. Téléchargement d’Apache Flink http://flink.apache.org/ 2. Décompression de l’archive $ tar xzf flink-*.tgz 3. Facultative : Déplacer et renommer le répertoire $ mv flink-0.9.1 ~/tools/flink 4
  5. 5. Installation en local : contenu 5
  6. 6. Installation en local : configuration 1. Fichier de configuration unique $ gedit ./conf/flink-conf.yaml https://ci.apache.org/projects/flink/flink-docs-release-0.9/setup/config.html 1. Nombre de managers taskmanager.numberOfTaskSlots : *Nombre de CPU* https://ci.apache.org/projects/flink/flink-docs-release- 0.9/setup/config.html#configuring-taskmanager-processing-slots 6
  7. 7. Plan 1. Installation & config (en local) 2. Exécution des exemples : CLI & Job Client Web interface 3. Développement avec un IDE : Batch Vs Streaming 4. Développement interactif : Scala shell Vs Zeppelin 7
  8. 8. Exécution des exemples : Command-Line Interface 1. Exécution des programmes *.jar en ligne de commandes a. Indifférence entre localhost/cluster b. Passage des paramètres simplifié args[*] c. Test de performance avec différents parallélisme -p 8 2. Démarrer l’interpréteur Flink a. $ ./bin/start-local.sh #UNIX or Windows Cygwin 8
  9. 9. Exécution des exemples : Command-Line Interface (Démo) $ ./bin/flink run ./examples/flink-java-examples-0.9.1- WordCount.jar #UNIX $ .binflink.bat run .examplesflink-java-examples-0.9.1- WordCount.jar #Windows 9
  10. 10. Exécution des exemples : Command-Line Interface (Démo) $ ./bin/flink run -p 8 ./examples/flink-java-examples-0.9.1- WordCount.jar file:///home/bilal/tools/flink/LICENSE file:////home/bilal/tools/flink/output/WordCountOut.csv ==>https://ci.apache.org/projects/flink/flink-docs-release-0.9/apis/cli.html run / info / cancel / list 10
  11. 11. Exécution des exemples : Job Client Web interface 1. Permet l'exécution des programmes *.jar sur une interface web a. Visualisation du plan d'exécution b. Visualisation des performances c. Passage des paramètres args[*] d. Visualisation de l’utilisation des ressources 11
  12. 12. Exécution des exemples : Job Client Web interface 1. Démarrer l’interpréteur a. $ ./bin/start-local.sh b. $ ./bin/start-webclient.sh #Par defaut port 8080 c. localhost:8080 12
  13. 13. Exécution des exemples : Job Client Web interface 13
  14. 14. Exécution des exemples : Job Client Web interface (Démo) Envoi du programme : flink-java-examples-0.9.1-WordCount.jar Visualisation du plan d'exécution Exécution et visualisation des performances -p 1 file:////home/bilal/tools/resources/bigfile.txt file:////home/bilal/tools/flink/output/bigfileCountP1.txt -p 8 file:////home/bilal/tools/resources/bigfile.txt file:////home/bilal/tools/flink/output/bigfileCountP8.txt 14
  15. 15. Exécution des exemples : Job Client Web interface 15
  16. 16. Plan 1. Installation & config (en local) 2. Exécution des exemples : CLI & Job Client Web interface 3. Développement avec un IDE : Batch Vs Streaming 4. Développement interactif : Scala shell Vs Zeppelin 16
  17. 17. Développement avec un IDE : Recommandations 1. Disposer d’une version récente de Maven 2. Deux IDE : Eclipse et IntelliJ IDEA i. Java ii. Scala ==>https://ci.apache.org/projects/flink/flink-docs-release- 0.9/apis/programming_guide.html 17
  18. 18. Développement avec un IDE : Exemple JAVA $ mkdir workspace $ cd workspace $ mkdir javaflink $ cd javaflink $ mvn archetype:generate - DarchetypeGroupId=org.apache.flink - DarchetypeArtifactId=flink-quickstart-java - DarchetypeVersion=0.9.1 SCALA $ mkdir workspace $ cd workspace $ mkdir scalaflink $ cd scalaflink $ mvn archetype:generate - DarchetypeGroupId=org.apache.flink - DarchetypeArtifactId=flink-quickstart-scala - DarchetypeVersion=0.9.1 ⇒ Importation du projet dans l’IDE 18
  19. 19. Développement avec un IDE : Exemple SCALA <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala</artifactId> <version>0.9.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients</artifactId> <version>0.9.1</version> </dependency> JAVA <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>0.9.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients</artifactId> <version>0.9.1</version> </dependency> 19
  20. 20. Développement avec un IDE : Exemple WordCount : Batch SocketTextStreamWordCount : Stream 1. Ouvrir un terminal pour écrire sur le port 9999 a. $ nc -lk 9999 # Écrire quelques 2. Exécuter SocketTextStreamWordCount avec les arguments a. localhost 9999 #Adresse et port d’écoute 20
  21. 21. Plan 1. Installation & config (en local) 2. Exécution des exemples : CLI & Job Client Web interface 3. Développement avec un IDE : Batch Vs Streaming 4. Développement interactif : Scala shell Vs Zeppelin 21
  22. 22. Développement interactif : 1. Avantages a. Exécution interactive du code b. Exploration rapide des données c. API Scala complète 22
  23. 23. Développement interactif : Scala shell 23 1. $ ./bin/start-scala-shell.sh
  24. 24. Développement interactif : Scala shell 24 (Démo) Scala-Flink> val input = env.fromElements(1,2,3,4) Scala-Flink> val doubleInput = input.map(_*2) Scala-Flink> doubleInput.print()
  25. 25. Développement interactif : Scala shell 25 Défaut: 1. Pas de visualisation 2. Pas de sauvegarde 3. Pas de replay code
  26. 26. Développement interactif : Zeppelin 26 1. Interface-web 2. Ajout des graphes 3. Destiné aux data-scientists 4. Reporting schedulé ==>https://zeppelin.incubator.apache.org ==>https://zeppelin.incubator.apache.org/docs/interpreter/flink.html
  27. 27. Développement interactif : Zeppelin 27 (Démo) $ cd zeppelin $ ./bin/zeppelin-daemon.sh start http://localhost:8080 #Ports par défaut 8080 et 8081
  28. 28. Développement interactif : Zeppelin 28 (Démo : Double) %flink val input = env.fromElements(1,2,3,4) val doubleInput = input.map(_*2).collect %flink println("%table countn") doubleInput.foreach(s=> println(s))
  29. 29. Développement interactif : Zeppelin 29 (Démo : WordCount) %flink val text = env.fromElements("To be, or not to be",”bla bla bla”) val counts = text.flatMap { _.toLowerCase.split("W+")}.map { (_,1)}.groupBy(0).sum(1) val wordcount = counts.collect %flink println("%table wordtcountn") wordcount.foreach(s=> println(s._1 +"t" + s._2))
  30. 30. MERCI 30

×