---
# System prepended metadata

title: Formation administration Spark (O. Girardot)
tags: [cours, devel, spark, config]

---

###### 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/

  