Mahout - Environnement

Ce chapitre vous apprend à configurer mahout. Java et Hadoop sont les prérequis du mahout. Vous trouverez ci-dessous les étapes pour télécharger et installer Java, Hadoop et Mahout.

Configuration avant l'installation

Avant d'installer Hadoop dans un environnement Linux, nous devons configurer Linux en utilisant ssh(Enveloppe de protection). Suivez les étapes mentionnées ci-dessous pour configurer l'environnement Linux.

Créer un utilisateur

Il est recommandé de créer un utilisateur distinct pour Hadoop afin d'isoler le système de fichiers Hadoop du système de fichiers Unix. Suivez les étapes ci-dessous pour créer un utilisateur:

  • Ouvrez root en utilisant la commande «su».

  • Créez un utilisateur à partir du compte root à l'aide de la commande “useradd username”.

  • Vous pouvez maintenant ouvrir un compte utilisateur existant à l'aide de la commande “su username”.

  • Ouvrez le terminal Linux et tapez les commandes suivantes pour créer un utilisateur.

$ su
password:
# useradd hadoop
# passwd hadoop
New passwd:
Retype new passwd

Configuration SSH et génération de clé

La configuration SSH est requise pour effectuer différentes opérations sur un cluster telles que le démarrage, l'arrêt et les opérations de shell de démon distribuées. Pour authentifier différents utilisateurs de Hadoop, il est nécessaire de fournir une paire de clés publique / privée pour un utilisateur Hadoop et de la partager avec différents utilisateurs.

Les commandes suivantes sont utilisées pour générer une paire clé / valeur à l'aide de SSH, copier le formulaire de clés publiques id_rsa.pub dans allowed_keys et fournir respectivement des autorisations de propriétaire, de lecture et d'écriture sur le fichier authorized_keys.

$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

Vérification de SSH

ssh localhost

Installer Java

Java est le prérequis principal pour Hadoop et HBase. Tout d'abord, vous devez vérifier l'existence de Java dans votre système en utilisant «java -version». La syntaxe de la commande de version Java est donnée ci-dessous.

$ java -version

Il devrait produire la sortie suivante.

java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b13)
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

Si Java n'est pas installé sur votre système, suivez les étapes ci-dessous pour installer Java.

Step 1

Téléchargez java (JDK <dernière version> - X64.tar.gz) en visitant le lien suivant: Oracle

ensuite jdk-7u71-linux-x64.tar.gz is downloaded sur votre système.

Step 2

En règle générale, vous trouvez le fichier Java téléchargé dans le dossier Téléchargements. Vérifiez-le et extrayez lejdk-7u71-linux-x64.gz fichier à l'aide des commandes suivantes.

$ cd Downloads/
$ ls
jdk-7u71-linux-x64.gz
$ tar zxf jdk-7u71-linux-x64.gz
$ ls
jdk1.7.0_71 jdk-7u71-linux-x64.gz

Step 3

Pour rendre Java disponible à tous les utilisateurs, vous devez le déplacer vers l'emplacement «/ usr / local /». Ouvrez root et saisissez les commandes suivantes.

$ su
password:
# mv jdk1.7.0_71 /usr/local/
# exit

Step 4

Pour la mise en place PATH et JAVA_HOME variables, ajoutez les commandes suivantes à ~/.bashrc file.

export JAVA_HOME=/usr/local/jdk1.7.0_71
export PATH= $PATH:$JAVA_HOME/bin

Maintenant, vérifiez le java -version commande depuis le terminal comme expliqué ci-dessus.

Téléchargement de Hadoop

Après avoir installé Java, vous devez d'abord installer Hadoop. Vérifiez l'existence de Hadoop à l'aide de la commande «Hadoop version» comme indiqué ci-dessous.

hadoop version

Il devrait produire la sortie suivante:

Hadoop 2.6.0
Compiled by jenkins on 2014-11-13T21:10Z
Compiled with protoc 2.5.0
From source with checksum 18e43357c8f927c0695f1e9522859d6a
This command was run using /home/hadoop/hadoop/share/hadoop/common/hadoopcommon-2.6.0.jar

Si votre système ne parvient pas à localiser Hadoop, téléchargez Hadoop et installez-le sur votre système. Suivez les commandes ci-dessous pour ce faire.

Téléchargez et extrayez hadoop-2.6.0 de la fondation logicielle apache à l'aide des commandes suivantes.

$ su
password:
# cd /usr/local
# wget http://mirrors.advancedhosters.com/apache/hadoop/common/hadoop-
2.6.0/hadoop-2.6.0-src.tar.gz
# tar xzf hadoop-2.6.0-src.tar.gz
# mv hadoop-2.6.0/* hadoop/
# exit

Installer Hadoop

Installez Hadoop dans l'un des modes requis. Ici, nous démontrons les fonctionnalités de HBase en mode pseudo-distribué, donc installons Hadoop en mode pseudo-distribué.

Suivez les étapes ci-dessous pour installer Hadoop 2.4.1 sur votre système.

Étape 1: Configurer Hadoop

Vous pouvez définir des variables d'environnement Hadoop en ajoutant les commandes suivantes à ~/.bashrc fichier.

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME

export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME

Maintenant, appliquez toutes les modifications dans le système en cours d'exécution.

$ source ~/.bashrc

Étape 2: Configuration Hadoop

Vous pouvez trouver tous les fichiers de configuration Hadoop à l'emplacement «$ HADOOP_HOME / etc / hadoop». Il est nécessaire d'apporter des modifications à ces fichiers de configuration en fonction de votre infrastructure Hadoop.

$ cd $HADOOP_HOME/etc/hadoop

Pour développer des programmes Hadoop en Java, vous devez réinitialiser les variables d'environnement Java dans hadoop-env.sh fichier en remplaçant JAVA_HOME valeur avec l'emplacement de Java dans votre système.

export JAVA_HOME=/usr/local/jdk1.7.0_71

Vous trouverez ci-dessous la liste des fichiers que vous devez modifier pour configurer Hadoop.

core-site.xml

le core-site.xml Le fichier contient des informations telles que le numéro de port utilisé pour l'instance Hadoop, la mémoire allouée au système de fichiers, la limite de mémoire pour le stockage des données et la taille des tampons de lecture / écriture.

Ouvrez core-site.xml et ajoutez la propriété suivante entre les balises <configuration>, </configuration>:

<configuration>
   <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value>
   </property>
</configuration>

hdfs-site.xm

le hdfs-site.xmlfichier contient des informations telles que la valeur des données de réplication, le chemin du namenode et les chemins du datanode de vos systèmes de fichiers locaux. Cela signifie l'endroit où vous souhaitez stocker l'infrastructure Hadoop.

Supposons les données suivantes:

dfs.replication (data replication value) = 1

(In the below given path /hadoop/ is the user name.
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.)
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode

(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.)
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode

Ouvrez ce fichier et ajoutez les propriétés suivantes entre les balises <configuration>, </configuration> de ce fichier.

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
	
   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode</value>
   </property>
	
   <property>
      <name>dfs.data.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode</value>
   </property>
</configuration>

Note:Dans le fichier ci-dessus, toutes les valeurs de propriété sont définies par l'utilisateur. Vous pouvez apporter des modifications en fonction de votre infrastructure Hadoop.

mapred-site.xml

Ce fichier est utilisé pour configurer le fil dans Hadoop. Ouvrez le fichier mapred-site.xml et ajoutez la propriété suivante entre les balises <configuration>, </configuration> de ce fichier.

<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
   </property>
</configuration>

mapred-site.xml

Ce fichier est utilisé pour spécifier le framework MapReduce que nous utilisons. Par défaut, Hadoop contient un modèle de mapred-site.xml. Tout d'abord, il est nécessaire de copier le fichier à partir demapred-site.xml.template à mapred-site.xml fichier à l'aide de la commande suivante.

$ cp mapred-site.xml.template mapred-site.xml

Ouvert mapred-site.xml et ajoutez les propriétés suivantes entre les balises <configuration>, </configuration> dans ce fichier.

<configuration>
   <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

Vérification de l'installation de Hadoop

Les étapes suivantes sont utilisées pour vérifier l'installation de Hadoop.

Étape 1: Configuration du nœud de nom

Configurez le namenode à l'aide de la commande «hdfs namenode -format» comme suit:

$ cd ~
$ hdfs namenode -format

Le résultat attendu est le suivant:

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost/192.168.1.11
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.4.1
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted.
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to retain
1 images with txid >= 0
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11
************************************************************/

Étape 2: vérification des fichiers DFS Hadoop

La commande suivante est utilisée pour démarrer dfs. Cette commande démarre votre système de fichiers Hadoop.

$ start-dfs.sh

Le résultat attendu est le suivant:

10/24/14 21:37:56
Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/hadoop/hadoop-
2.4.1/logs/hadoop-hadoop-namenode-localhost.out
localhost: starting datanode, logging to /home/hadoop/hadoop-
2.4.1/logs/hadoop-hadoop-datanode-localhost.out
Starting secondary namenodes [0.0.0.0]

Étape 3: vérification du script de fil

La commande suivante est utilisée pour démarrer le script yarn. L'exécution de cette commande démarrera vos démons de fil.

$ start-yarn.sh

Le résultat attendu est le suivant:

starting yarn daemons
starting resource manager, logging to /home/hadoop/hadoop-2.4.1/logs/yarn-
hadoop-resourcemanager-localhost.out
localhost: starting node manager, logging to /home/hadoop/hadoop-
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out

Étape 4: Accéder à Hadoop sur le navigateur

Le numéro de port par défaut pour accéder à hadoop est 50070. Utilisez l'URL suivante pour obtenir les services Hadoop sur votre navigateur.

http://localhost:50070/

Étape 5: vérifier toutes les applications pour le cluster

Le numéro de port par défaut pour accéder à toutes les applications du cluster est 8088. Utilisez l'URL suivante pour visiter ce service.

http://localhost:8088/

Téléchargement de Mahout

Mahout est disponible sur le site Mahout . Téléchargez Mahout à partir du lien fourni sur le site Web. Voici la capture d'écran du site Web.

Étape 1

Téléchargez Apache mahout à partir du lien http://mirror.nexcess.net/apache/mahout/ en utilisant la commande suivante.

[[email protected] ~]$ wget
http://mirror.nexcess.net/apache/mahout/0.9/mahout-distribution-0.9.tar.gz

ensuite mahout-distribution-0.9.tar.gz sera téléchargé dans votre système.

Étape 2

Parcourez le dossier où mahout-distribution-0.9.tar.gz est stocké et extrayez le fichier jar téléchargé comme indiqué ci-dessous.

[[email protected] ~]$ tar zxvf mahout-distribution-0.9.tar.gz

Dépôt Maven

Vous trouverez ci-dessous le pom.xml pour construire Apache Mahout en utilisant Eclipse.

<dependency>
   <groupId>org.apache.mahout</groupId>
   <artifactId>mahout-core</artifactId>
   <version>0.9</version>
</dependency>

<dependency>
   <groupId>org.apache.mahout</groupId>
   <artifactId>mahout-math</artifactId>
   <version>${mahout.version}</version>
</dependency>

<dependency>
   <groupId>org.apache.mahout</groupId>
   <artifactId>mahout-integration</artifactId>
   <version>${mahout.version}</version>
</dependency>