27 Septembre 2016

A faire

  • Placer le master Spark sur un noeud sans datanode

Documents utiles

Vérification programme Scala

Nombre de lignes résultat programme Java avec RDD

scala> val result = spark.read.text("hdfs://hdfs-namenode:8020/xmatchResRDD.txt")
result: org.apache.spark.sql.DataFrame = [value: string]

scala> result.count
res0: Long = 1002665

Idem pour le programme en Scala

16/09/27 09:58:17 INFO scheduler.DAGScheduler: Job 2 finished: count at CrossMatch.scala:56, took 69.718721 s
16/09/27 09:58:17 INFO codegen.CodeGenerator: Code generated in 19.174098 ms
1002665

Utilisation de Drone pour compiler automatiquement

Drone est équivalent à Jenkins, cependant il est conçu pour fonctionner avec Docker ce qui facilite beaucoup son utilisation dans notre cas.

Installation

Il faut d’abord créer un fichier dronerc contenant des variable d’environement afin de configurer Drone :

REMOTE_DRIVER=gitlab
REMOTE_CONFIG=http://cdsgit.u-strasbg.fr?client_id=xxxxxxxxxxxxxxxx&client_secret=xxxxxxxxxxxxxxxxxxx

Configurons ensuite GitLab

Configuration de Drone dans GitLab

Configuration de Drone dans GitLab

docker service create \
    --mount type=bind,src=/mnt/gluster-docker/drone,dst=/var/lib/drone \
    --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
    --env REMOTE_DRIVER=gitlab --env REMOTE_CONFIG="http://cdsgit.u-strasbg.fr?client_id=1631916bc0db8e3e43b1b1860000c7c4076ae0fd080acd4415f52499b31e871b&client_secret=62febeec484824427f1657ed4f151570e89a5077ca3b9890573b18fc7601fbca" \
    --publish=8000:8000 \
    --name=drone \
    drone/drone
    

Accéder ensuite à cette page : http://cds-stage-ms4:8000/authorize

Utilisation

Il suffit de créer un fichier .drone.yml à la racine du projet git organisé comme sur cet exemple :

publish:
  docker:
    repo: docker-in-jenkins
    registry: cds-stage-ms1:5000
    insecure: true
    tag: latest
    file: Dockerfile

Il est aussi possible de compiler n’import quel language en créant un Dockerfile approprié (c’est à dire contenant l’environement necessaire à la compilation)

Exemple compilation du programme de crossmatch en Scala

build:
image: openjdk:alpine
commands:
    - wget http://apache.mindstudios.com/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
    - tar -zxvf apache-maven-3.3.9-bin.tar.gz
    - ./apache-maven-3.3.9/bin/mvn -B package

On récupère l’image officielle openjdk on installe maven et on compile le JAR