###### tags: `cours` `spark` `devel` `config` # Formation administration Spark (O. Girardot) YARN => mode batch mesos => mode streaming et autres HIVE metastore => map un schema sur du HDFS => abstraction en table depuis SPARK HBASE => base de données cles/valeurs benchmark kubernet avec container versus spark : https://www.datamechanics.co/blog-post/apache-spark-performance-benchmarks-show-kubernetes-has-caught-up-with-yarn oozie, airflow => scheduler sur le cluster : AIRFLOW ### list des soumissions yarn ``` yarn app -list ``` ## TP Live Cluster avec Olivier ### TODO - spark-ui-enable à false car on utilise spark.history /usr/local/spark/conf/spark-default.conf update-interval à 10s => raffraichissement tous les 10s pour obtenir l'adresse local: hostvars[inventory_hostname].ansible_host - [X] @christophe - resolution adresse IP (changement /etc/hosts) - [X] conf /usr/local/spark/conf/spark-default.conf mem à 512m relativement petit. regle : 1 partition doit tenir dans la memoire d'un executor => conseil 2g (on peut aller à 30 à 31 Go du au changement d adressage - pas 32Go) - spark-defaults.conf - spark.driver.memory 2g - spark.yarn.am.memory 2g - spark.executor.memory 2g - [X] yarn-schedulor-maximum-allocation-mb => proportion de ram max qu'on peut allouer...actuellement à 1536m - [conf ici](https://services.pfem.clermont.inrae.fr/gitlab/metabosemdatalake/ansible-datalake/-/blob/master/roles/hadoop_conf/templates/yarn-site.xml.j2) - yarn.nodemanager.resource.memory-mb <- 40960 - yarn.scheduler.maximum-allocation-mb <- 4096 - yarn.scheduler.minimum-allocation-mb <- 2048 - [ ] faire un timeout des soumission yarn (exemple de spark-shell qui est tué mais toujours present dans la yarn app -list) - [ ] definition d'une partition tmp ? ou dans /data ? - [ ] /etc/hadoop/core-site => hadoop.tmp.dir - configuration du shuffle : https://spark.apache.org/docs/latest/running-on-yarn.html#configuring-the-external-shuffle-service - [ ] sparkUI.enable = false car on utilise history spark. - [ ] vcore total 40 max - [ ] mem totel => 160 Gb => 64 Gb - [ ] nombre de soumissions par utilisateur - [ ] yarn.scheduler.capacity.maximum-am-resource-percent=1.0 - [ ] remplacer node.memory... ==> yarn.nodemanager.resource.detect-hardware-capabilities=true - [ ] spark-default -> spark.yarn.am.memory=256m - [ ] changer la replication HDFs de 4 à 3 - [ ] Install AirFlow (autre part que sur le named node?) - [ ] Espace temporaire pour le telechargement des bases PubChem.... - Update/Telechargement des données RDF ? Scrach ? BioMAJ ou autre ? - [ ] Edge Node (frontend/login node) - [ ] Autoriser les utilisateurs pour spark (éviter ubuntu pour tout le monde) / gestion des nouveaux utilisateurs - [ ] Réduire espace reservé (5%) pour root sur partition /data ``` tune2fs -l /dev/mapper/data-lv--data tune2fs -m 0 /dev/mapper/data-lv--data ``` - [ ] Configuration _yarn-core-site.xml_ avec l utilisation de docker versus Deploiement avec Ansible - [ ] Repertoire "Snapshotable" ? - [ ] Installer zeppelin ? Sur le edgenode ? https://zeppelin.apache.org/ - [ ] Ouvrir le edgenode (ssh + interface web pour zeppelin / proxy vers interfaces spark...) ? - [ ] namenode: Secondary namenode - sans zookeeper - [ ] namenode: Mettre en place backup namenode (_-fetchImage_, _VERSION_ file) + test restauration https://docs.cloudera.com/runtime/7.2.7/data-protection/topics/hdfs-back-up-hdfs-metadata.html - [ ] Ambari pour la supervision ? https://ambari.apache.org/