0% ont trouvé ce document utile (0 vote)
131 vues36 pages

Tutoriel R pour Hadoop et HDFS

Ce document décrit les étapes pour installer le framework Hadoop sur une machine virtuelle, installer R et RStudio Server, et programmer avec MapReduce et accès aux données HDFS avec R.

Transféré par

brahim elbhiri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
131 vues36 pages

Tutoriel R pour Hadoop et HDFS

Ce document décrit les étapes pour installer le framework Hadoop sur une machine virtuelle, installer R et RStudio Server, et programmer avec MapReduce et accès aux données HDFS avec R.

Transféré par

brahim elbhiri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Installation du framework Hadoop (distribution Cloudera)

Installation et configuration de R et RStudio Server


Programmation Mapreduce avec R
Programmation avec accès aux données sur HDFS

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 1
Objectif du tutoriel

L’objectif de ce tutoriel est de montrer, in fine, la programmation sous R de l’algorithme


de comptage de mots – le fameux « wordcount » – à partir d’un ensemble de fichiers
stockés sur HDFS.

L’exemple « wordcount » fait référence. Il est décrit partout sur le web. Mais, à bien y
regarder, les tutoriels qui le reprennent sont (très) rarement reproductibles. Les fichiers
de travail ne sont pas disponibles. On ne voit pas vraiment comment on y accède avec R
lorsqu’ils sont stockés sur le système de fichier HDFS. Bref, on ne peut pas faire tourner
les programmes et se rendre compte réellement de leur mode de fonctionnement.

Nous allons reprendre tout cela étape par étape. Nous décrirons avec force détails chaque
stade de processus, en partant de l’installation d’ un cluster hadoop mono-nœud sur une
machine virtuelle jusqu’à la programmation sous R, en passant par l’installation de R et
de l’environnement de programmation client – serveur RStudio Server.

Les étapes et, par conséquent les sources d’erreurs, sont nombreuses. Nous utiliserons
moults copies d’écran pour appréhender concrètement chaque opération. D’où ce format
de présentation inhabituel pour un tutoriel.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 2
Etapes

1. Installation et configuration d’un cluster simple nœud


2. Installation et configuration de R et RStudio Server
3. Programmation R sous Hadoop – MapReduce
4. Programmation R sous Hadoop – Accès aux fichiers sur HDFS
5. Bibliographie

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 3
Il est possible d’installer le framework Hadoop directement sur une machine
existante (ex. installation sous Ubuntu). Mais l’opération reste délicate, nécessitant
un certain savoir faire informatique (système).

Heureusement, des éditeurs proposent des solutions clés en main avec la création
d’une machine virtuelle – faisant office d’un cluster à un nœud – intégrant déjà
Hadoop correctement configuré et fonctionnel. Nous utiliserons la distribution
Cloudera basé sur le système d’exploitation CentOs dans ce tutoriel.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 4
Chargement et installation de VirtualBox
VirtualBox est un logiciel libre.

VirtualBox est un logiciel de


« virtualisation » c.-à-d. c’est une
application hôte qui permet
d’accueillir et faire tourner un
système d’exploitation comme un
logiciel quelconque. On dispose ainsi
d’une machine virtuelle pleinement
fonctionnelle.

Une fois installé, on peut y


incorporé plusieurs machines
virtuelles.

Dans cette copie d’écran, on constate que j’ai déjà installé deux machines invitées sous
VirtualBox : l’une tournant sous Ubuntu et l’autre sous Windows XP.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 5
Chargement de Cloudera (1/2)

Cloudera propose une solution clé en


main – gratuite – permettant de
bénéficier d’une configuration
Hadoop fonctionnelle sous une
nouvelle machine virtuelle invitée de
VirtualBox (ou autre, ex. VMWare).
http://www.cloudera.com/content/cloudera/en/d
ownloads.html

Il s’agit bien de créer un cluster hadoop simple


nœud sous la forme d’une machine virtuelle (VM)

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 6
Chargement de
Cloudera (2/2)

La machine virtuelle est


basée sur CentOS 6.4

Nous chargeons la machine


destinée à VirtualBox dans
ce tutoriel.

Le fichier archive
une fois téléchargé

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 7
Importation de la machine virtuelle sous VirtualBox (1/3)

L’archive comporte 2 fichiers

Il y a plusieurs étapes dans le


processus d’importation que
l’on initie en cliquant sur le
menu adéquat dans VirtualBox

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 8
Importation de la machine virtuelle sous VirtualBox (2/3)

On a l’impression de
pouvoir choisir, mais en
réalité c’est toujours
CentOS qui est installé.

Choix du dossier de destination du


fichier contenant la machine
virtuelle. Attention, il faut prévoir
de la place parce que sa taille va
enfler considérablement au fil des
opérations.

Le processus d’importation
est démarré lorsque l’on
clique sur IMPORTER.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 9
Importation de la machine virtuelle sous VirtualBox (3/3)

La machine virtuelle est


maintenant installée
dans VirtualBox

Le fichier qui lui est


associé fait plus de
6 Go ! Et ce n’est
que le début.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 10
Démarrage de la machine virtuelle (1/3)

Démarrage de la machine
virtuelle. Attention, cela
peut prendre un certain
temps.

Remarque : Le message "vt-x is


disabled in the bios" peut apparaître
sur certains ordinateurs. La machine
virtuelle n'est pas démarrée. Il faut
alors activer la technologie de
virtualisation d'Intel dans le BIOS du
PC c.-à-d. le mettre à ENABLED.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 11
Démarrage de la machine virtuelle (2/3)

Au démarrage de la
machine, Hadoop
est fonctionnel. Il
n’y a pas de
manipulations
particulières à faire
de ce côté-là.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 12
Démarrage de la machine virtuelle (3/3)

Installation du clavier
français pour les
différentes
manipulations
ultérieures. Nous
aurons à saisir des
commandes dans un
terminal notamment.

Il faut cliquer sur ADD,


puis sélectionner
FRENCH et le choisir
comme clavier par
défaut.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 13
Le logiciel R sert à interpréter nos programmes.

RStudio Server nous permet d’accéder à l’éditeur de code RStudio via un navigateur.
On peut accéder au serveur en utilisant son numéro IP. Dans notre cas, la même
machine fait office de client et de serveur, nous utilisons 127.0.0.1 (machine locale).
Mais la démarche est très facilement généralisable à un accès distant en utilisant le
numéro IP d’un serveur correctement configuré.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 14
Installation de R et RStudio Server (1/2)

Toutes les instructions


adéquates sont
décrites sur le site de
RSTUDIO. Nous
choisissons CentOS
puisque c’est le
système qui a été
installé avec la
distribution CLOUDERA.

http://www.rstudio.com/products/rstudio/download-server/

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 15
Installation de R et RStudio Server (2/2)

Nous ouvrons un
terminal pour
pouvoir introduire
les commandes
d’installation.

Voici les instructions à


saisir dans le terminal

Installation de R
$ sudo yum install R
Installation de Rstudio Server (64 bit)
$ sudo yum install openssl098e # Required only for RedHat/CentOS 6 and 7
$ wget http://download2.rstudio.org/rstudio-server-0.98.1103-x86_64.rpm
$ sudo yum install --nogpgcheck rstudio-server-0.98.1103-x86_64.rpm
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 16
Installation des packages référencés sous R
Pour pouvoir
programmer sous
Hadoop, nous avons
besoin d’une série de
packages référencés
sur le CRAN.

Nous les installons en


démarrant R en mode
administrateur via le
terminal c.-à-d. avec
la commande
$ sudo R

Vient ensuite la
commande
install.packages
indiquant les librairies
et le dépôt source
(repos).

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 17
Installation des
packages spécifiques
sous R (1/3)

Nous souhaitons
utiliser 2 packages de
la collection RHadoop
de la société
RevolutionAnalytics.

rmr pour pouvoir


programmer selon le
paradygme
MAPREDUCE

rhdfs pour disposer


des commandes
permettant de
manipuler des fichiers
Nous chargeons les
sur le système HDFS
deux fichiers dans le
dossier « Downloads »

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 18
Installation des packages spécifiques sous R (2/3)

De nouveau, nous
lançons le terminal,
nous changeons de
répertoire (absolument
nécessaire pour éviter
d’avoir à spécifier des
chemins) et nous
démarrons R en mode
administrateur.

install.packages()
permet aussi d’installer
des librairies à partir
des fichiers chargés
localement.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 19
Installation des packages spécifiques sous R (3/3)

Attention, pour le
package « rhdfs », il
faut d’abord spécifier
les valeurs des
variables
d’environnement -
indiquant la
localisation du système
hadoop sur notre
machine - avant de
pouvoir l’installer.

Nous utilisons la
commande
Sys.setenv() sous R.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 20
Première tentative. Des données sont générées en mémoire, elles sont
stockées dans un fichier temporaire puis la fonction mapreduce() de rmr2 est
appelée. Elle se charge d’appeler successivement en interne les fonction map()
et reduce() que nous avons préalablement codées.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 21
Création d’un dossier pour nos programmes

Les programmes
que nous allons
écrire seront
stockés dans ce
dossier

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 22
Accès à RStudio via un navigateur web (1/2)

Le serveur est sur la


machine locale. Nous
utilisons l’IP :
127.0.0.1

Le port est
spécifique, nous
utilisons 8787

Le login est
standardisé,
username : cloudera
password : cloudera

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 23
Accès à RStudio via un navigateur web (2/2)

Nous retrouvons
l’environnement de
développement
habituel de RStudio.

Remarque : Si
l’éditeur de script
n’est pas disponible,
nous pouvons créer
un fichier vierge en
cliquant sur le menu
FILE / NEW FILE / R
SCRIPT

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 24
Programmation MapReduce sur des données créées en mémoire (1/4)

Le programme une
fois rédigé est
sauvegardé dans le
dossier
« MyPrograms » créé
préalablement.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 25
Programmation
#emplacement de la machine virtuelle java
Sys.setenv(JAVA_HOME="/usr/lib/jvm/java-openjdk") MapReduce (2/4) –
Spécification des options
#emplacement de hadoop
Sys.setenv(HADOOP_HOME="/usr/lib/hadoop")
Sys.setenv(HADOOP_CMD="/usr/lib/hadoop/bin/hadoop")

#emplacement du jar se chargeant du streaming


Sys.setenv(HADOOP_STREAMING="/usr/lib/hadoop-mapreduce/hadoop-streaming-2.5.0-cdh5.3.0.jar")

#chargement du package « rmr2 »


library(rmr2)

#nouvelles options – très importantes pour la gestion de la mémoire


#sinon le message d’erreur « Java heap space » sera renvoyé durant l’exécution
bp <- list(
hadoop = list(
D = "mapreduce.map.java.opts=-Xmx1024M",
D = "mapreduce.reduce.java.opts=-Xmx2048M",
D = "mapreduce.map.memory.mb=1280",
D = "mapreduce.reduce.memory.mb=2560"
)
)

#modification des paramètres


rmr.options(backend.parameters = bp)

#exécution en mode hadoop


rmr.options(backend="hadoop")

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 26
Programmation MapReduce (3/4) – Ecriture des A la sortie de MAP
fonctions map() et reduce(). Application sur un
key value
vecteur de mots.
one 1
#fonction map two 1
mymap <- function(k,v){
one 1
keyval(v,1)
} one 1
two 1
#fonction reduce
myreduce <- function(k,v){
n <- length(v) Partition basée sur la clé
keyval(k,n)
} Key = one 1 1 1

#données créées en mémoire Key = two 1 1


b <- c("one","two","one","one","two")

Appel de REDUCE (Wikipedia [EN] :


#transformées et copiées dans un fichier temporaire sur HDFS
The framework calls the application's
a <- to.dfs(b)
Reduce function once for each unique
key in the sorted order)
#lancement de la procédure mapreduce
sortie <- mapreduce(input=a, map=mymap, reduce=myreduce)

A la sortie de REDUCE
#récupération de la sortie temporaire sur HDFS
#affichage dans le terminal R
Key = one 3
print(from.dfs(sortie))

Key = two 2

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 27
Programmation MapReduce (4/4) – Lecture de la sortie console

Un vecteur de mots est généré en mémoire

Ces données en mémoire sont copiées


dans un fichier temporaire sur HDFS, qui
sert d’entrée (input) pour la fonction
mapreduce() de rmr2

Initialisation de l’exécution. Puis appel


interne des fonctions map() et reduce()

A l’issue de l’exécution, la
sortie est copiée dans un
fichier temporaire sur HDFS

Que l’on peut charger en


mémoire dans un format
reconnaissable par R et afficher
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 28
De manière plus réaliste maintenant, nous accédons à un ensemble de fichiers
stockés dans un dossier du système de fichiers HDFS.

Il nous faut donc tout d’abord expliciter le format et le contenu de ces fichiers,
puis montrer comment nous pouvons les copier dans un dossier spécialement
créé à cet effet sur HDFS, enfin modifier notre programme pour qu’il traite ces
fichiers.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 29
Création de 3 fichiers de données dans un répertoire quelconque

3 fichiers sont créés dans


notre dossier personnel
« MyData » : file1.txt,
file2.txt, file3. txt

Chacun contient une liste


de mots que l’on visualiser
ici.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 30
Copies des fichiers dans un dossier « Data » sur HDFS
Création d’un dossier /data
sur HDFS. Qu’il y ait un nœud
ou plus sur le cluster n’est pas
un souci, pour nous c’est
transparent.

Le dossier est vide


pour l’instant

Nous copions nos fichiers


de notre système local
vers HDFS

Les fichiers sont bien


visibles dans le dossier
/data sur HDFS.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 31
Programmation à partir de fichiers sur HDFS
La partie spécifications des paramètres est identique à précédemment. Idem
en ce qui concerne les fonction map() et reduce()

La procédure se charge de scanner l’ensemble des


fichiers contenus dans le dossier /data

#on a besoin de la librairie hdfs maintenant


library(rhdfs)

#initialiser l’accès à hdfs


hdfs.init()

#afficher le contenu du dossier data


hdfs.ls("/data")

#programmation en accédant au contenu du dossier /data sur HDFS


sortie.bis <- mapreduce(input="/data", input.format="text", map=mymap, reduce=myreduce)
print(from.dfs(sortie.bis))

Ces fichiers sont au format « texte » et non au


format « natif ». On ne passe pas par l’étape
intermédiaire to.dfs() ici.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 32
Sorties du programme (1/2)
Les 3 fichiers du dossier /data
sont bien visibles.

Et ils vont être traités.

On peut suivre à la console


l’évolution du processus.

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 33
Sorties du programme (2/2)
reduce() a été appelé 5
fois parce qu’il y a 5
valeurs différentes de
clés.

Les résultats sont


stockés dans un
fichier temporaire
parce que nous
n’avons pas
renseigné le
paramètre « output ».

Et nous avons bien


les comptages
consolidés des 3
fichiers : file1.txt,
file2.txt et file3.txt !

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 34
Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 35
Tutoriel Tanagra, « MapReduce avec R », février 2015.
Hugh Devlin, « Mapreduce in R », janvier 2014.
Cloudera, « Cloudera Product Downloads ».
RStudio, « Download RStudio Server – RedHat/CentOS ».
RevolutionAnalytics, « RHadoop ».

Ricco Rakotomalala
Tutoriels Tanagra - http://tutoriels-data-mining.blogspot.fr/ 36

Vous aimerez peut-être aussi