Rstudio Server

Présentation

Vous disposez de l'environnement RStudio Server sur l'infrastructure du CTIG. L'accès se fait via l'URL suivante https://ctig-services.inrae.fr/Rstudio

4 versions de R sont disponibles
  • 3.6.2
  • 4.0.1
  • 4.1.1
  • 4.2.1

Attention , ces versions de R ne sont disponibles que sur le serveur d'interactivité Rstudio Server et les noeuds du cluster dédiés. Sur dga20 et les noeuds dits "classiques" du cluster , seules les versions 3.5.0 (commande R350 ) et 3.6.2 ( commande R362 ) sont disponibles.

Les programmes R lancés via cet outil s'exécutent sur une machine virtuelle de 16 processeurs et de 256 Go de mémoire (limite à 125 Go par utilisateur) . Par ailleurs 3 noeuds du cluster (2 avec 128Go de mémoire et 1 avec 512Go) ont été alloués pour y exécuter des jobs Batch soumis par SGE en utilisant la classe redhat8q . Ces 3 noeuds disposent des mêmes versions de R.

Depuis l'interface de Rstudio, vous pouvez exécuter des commandes "classiques" linux ainsi que soumettre des travaux batch par qsub en allant dans la fenêtre " Terminal "

Environnement de travail

vous disposez du même environnement que sur dga20 (même Home Directory, mêmes filesystems, même filesystem de travail (/travail), ...)

1ère connexion

Pour que la 1ère connexion d'un utilisateur se fasse, il faut que sa Home Directory existe déjà, ce qui est le cas pour tous les utilisateurs s'étant déjà connectés au moins une fois sur dga20. Dans le cas contraire, il faut donc d'abord se connecter une fois sur dga20 (création automatique de la Home Directory) puis ensuite se connecter à Rstudio

Accès

pré-requis : s'être au moins connecté sur dga20 ou dga-cluster

https://ctig-services.inrae.fr/Rstudio

Cette URL n'est ouverte qu'aux réseaux INRA ainsi qu'à certains réseaux connus de partenaires (IDELE, IFIP,GenEval,...). Il ne sera donc pas possible de se connecter depuis votre domicile sans passer par Global Protect.

Les identifiants ( username/password) à utiliser sont les mêmes que pour la connexion à dga20 (LDAP du CTIG)

Soumission de jobs Batch

Vous pouvez soumettre des travaux en Batch via qsub ou qarray en utilisant la classe SGE redhat8q . Ces scripts peuvent être construits et soumis depuis la fenêtre "Terminal" de Rstudio

exemple de Job

Attention, l'exemple ci-dessous ne fonctionnera que si il est lancé depuis la fenêtre Terminal de Rstudio

créer le fichier R_job_sge.sh avec les lignes suivantes

#! /bin/ksh
#$ -o /travail/mon_repertoire/R_job.out
#$ -e /travail/mon_repertoire/R_job.err
#$ -q redhat8q
#$ -M mon_adresse_mail@inrae.fr
#$ -m bea
#$ -l h_vmem=8G 
Rscript /chemin_du_job/R_job.R

soumettre le job

qsub R_job_sge.sh

Pour soumettre le même job depuis dga20, par exemple, il faudra ajouter le chemin complet de la version de la commande Rscript dans le fichier R_job_sge.sh

  • /opt/R/3.6.2/bin/Rscript
  • /opt/R/4.0.1/bin/Rscript
  • /opt/R/4.1.1/bin/Rscript
  • /opt/R/4.2.1/bin/Rscript

Vous trouverez d'autres informations sur l'utilisation de l'ordonnanceur SGE à l'URL suivante

https://forge-dga.jouy.inra.fr/projects/ctig-env-base/wiki/Dga-cluster-utilisateurs#Lordonnanceur-SGE

Conseils d'utilisation

Eviter les mots de passe en "dur" dans les scripts R

Exemple de connexion à DB2

Exemple de connexion en RMarkdown

---
title: "Appel DB2 par le POC R 2021" 
author: "MLA" 
date: "fév 2022" 
output:
  pdf_document: default
  word_document: default
  html_document: default
---
```{r setup}

library(config)
library(RODBC)

```

Requete simple

```{r sql}

conf <- config::get("db2")

ch <- odbcConnect("TATOOINE",uid=conf$uid, pwd = conf$pwd,believeNRows=FALSE)
res = sqlQuery(ch,'select * from SIG.RFPAIP')

```

  • Dans l'exemple on accède à la table SIG RFPAIP de l'instance TATOOINE
  • Pour accéder à la prod, il faut utiliser "CTIGDSNE"
  • le module config est utilisé pour éviter de stocker les user mots de passe dans le code. Il faut pour cela créer un fichier config.yml à la racine de son home directory avec le contenu minimum :
default:
  db2:
    uid: 'xxxxxxxx'
    pwd: 'xxxxxxxx'

En veillant à ce que ce fichier ne soit lisible que par l'utilisateur

Exemple de connexion à ORACLE (HCGIL) et MariaDB(GEEL)

créer sous votre Home Directory, le fichier config.yml avec les lignes suivantes

default:
  geel:
    uid: 'uuuuuuuu'
    pwd: 'pppppppp'
  hcgil:
    uid: 'xxxxxxxx'
    pwd: 'yyyyyyyy'

restreindre le droit de lecture-écriture au propriétaire seul

chmod 600 config.yml

code R

conf <- config::get("geel")
ch <- odbcConnect("GEEL",uid = conf$uid, pwd = conf$pwd,believeNRows=FALSE)
sqlQuery(ch,'select * from geel.races')
conf <- config::get("hcgil")
ch <- odbcConnect("DGA5D",uid = conf$uid, pwd = conf$pwd,believeNRows=FALSE)
sqlQuery(ch,'select file_name, tablespace_name, bytes from dba_data_files')

rstudio_page04.PNG (40,151 ko) Thierry Coudert, 06/04/2022 13:13