Adaltas

Installation Sous OSX en Mode Pseudo-distribué

Le système d’exploitation choisi est OSX mais la procédure n’est pas si différente pour tout environnement Unix car l’essentiel des logiciels sont téléchargés depuis Internet, décompressés et paramétrés manuellement. Seuls quelques paquets sont installés par Macport mais ceux-ci sont aisément trouvables sur des outils équivalents comme Apt et Yum. Etant donné que les logiciels téléchargés sont en Java, il ne devrait pas y avoir de soucis quand à leur fonctionnement dans d’autres environnements.

Cette environnement est configuré en mode pseudo-distribué afin de simuler au mieux le comportement d’un cluster si un poste unique. Dans ce mode, chaque processus Java tourne dans sa propre JVM.

La procédure couvre l’installation des logiciels suivant:

Choix des versions

L’installation des logiciels depuis les dépôts SVN s’est confrontée à un problème d’incompatibilité entre Hive qui requière la dernière version stable de Hadoop (2.20.2) et celle de Sqoop qui requière la version SVN de Hadoop. Pour cette raison, nous avons opté pour les versions distribuées par Cloudera. Basées sur des versions stables, elles incluent un grand nombre des patches présents dans les dépôts SVN et sont testés par certains des meilleurs experts de la communauté.

Toutefois, certaines fonctionnalités ne sont pas encore présentes des la distribution, c’est pourquoi certains d’entre nous utilisent aussi des versions compilées depuis les dépôts SVN. Les logiciels en question sont HBase et Hive et leur installation manuelle n’est pas couverte ci-dessous.

Installation

La procédure décrite part du postulat que XCode et MacPort sont déjà présent sur le système.

La distribution de Cloudera est CDH3beta2 qui n’est pas la plus récente mais le mécanisme est le même à condition de se rendre sur le site de Cloudera et de télécharger les versions les plus récentes. Dépendances MacPort

1
2
sudo port install wget p26-virtualenv libxml2 libxslt mysql5 mysql5-server  sqlite mysql
easyinstall simplejson

Mise en place de SSH

1
2
3
4
5
6
7
8
# You need to able to ssh yourself with requiring a password
# (using your public key)
# Next line only if "~/.ssh/id_rsa.pub" does not exists
ssh-keygen -C "my@email.com" -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# you should now be able to issue "ssh localhost"
# without entering your password

Préparation du répertoire d’installation

1
2
3
4
5
 
# Replace {username}
sudo mkdir /opt/cloudera
sudo chown {username}:staff /opt/cloudera
cd /opt/cloudera

Téléchargement des paquets

1
2
3
4
5
6
7
8
wget http://archive.cloudera.com/cdh/3/hadoop-0.20.2+320.tar.gz
wget http://archive.cloudera.com/cdh/3/hive-0.5.0+20.tar.gz
wget http://archive.cloudera.com/cdh/3/pig-0.7.0+9.tar.gz
wget http://archive.cloudera.com/cdh/3/hbase-0.89.20100621+17.tar.gz
wget http://archive.cloudera.com/cdh/3/sqoop-1.0.0+3.tar.gz
wget http://archive.cloudera.com/cdh/3/flume-0.9.0+1.tar.gz
wget http://archive.cloudera.com/cdh/3/hue-common_0.9-2.tar.gz
wget http://archive.cloudera.com/cdh/3/zookeeper-3.3.1+10.tar.gz

Extraction des paquets

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
tar -xzf hadoop-0.20.2+320.tar.gz
tar -xzf hive-0.5.0+20.tar.gz
tar -xzf pig-0.7.0+9.tar.gz
tar -xzf hbase-0.89.20100621+17.tar.gz
tar -xzf sqoop-1.0.0+3.tar.gz
tar -xzf flume-0.9.0+1.tar.gz
tar -xzf hue-common_0.9-2.tar.gz
tar -xzf zookeeper-3.3.1+10.tar.gz
# Make symbolic links
ln -sf hadoop-0.20.2+320 hadoop
ln -sf hive-0.7.0-dev hive
ln -sf pig-0.7.0+9 pig
ln -sf hbase-0.89.20100621+17 hbase
ln -sf sqoop-1.0.0+3 sqoop
ln -sf flume-0.9.0+1 flume
ln -sf hue-common-0.9 hue
ln -sf zookeeper-3.3.1+10 zookeeper
# Clean up
rm -rf *.tar.gz

Configuration de l’environnement

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
echo "export JAVA_HOME=/Library/Java/Home" >> ~/.profile
echo "export HADOOP_HOME=/opt/cloudera/hadoop" >> ~/.profile
echo "export HIVE_HOME=/opt/cloudera/hive" >> ~/.profile
echo "export HIVE_CONF_DIR=/opt/cloudera/hive/conf" >> ~/.profile
echo "export PIG_HOME=/opt/cloudera/pig" >> ~/.profile
echo "export HBASE_HOME=/opt/cloudera/hbase" >> ~/.profile
echo "export FLUME_HOME=/opt/cloudera/flume" >> ~/.profile
echo "export SQOOP_HOME=/opt/cloudera/sqoop" >> ~/.profile
echo "export ZOOKEEPER_HOME=/opt/cloudera/zookeeper" >> ~/.profile
echo "export HUE_HOME=/opt/cloudera/hue" >> ~/.profile
echo "export PATH=\$HADOOP_HOME/bin:\$PATH" >> ~/.profile
echo "export PATH=\$HBASE_HOME/bin:\$PATH" >> ~/.profile
echo "export PATH=\$PIG_HOME/bin:\$PATH" >> ~/.profile
echo "export PATH=\$HIVE_HOME/bin:\$PATH" >> ~/.profile
echo "export PATH=\$FLUME_HOME/bin:\$PATH" >> ~/.profile
echo "export PATH=\$SQOOP_HOME/bin:\$PATH" >> ~/.profile
echo "export PATH=\$ZOOKEEPER_HOME/bin:\$PATH" >> ~/.profile
source ~/.profile

Configuration des logiciels

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Configure Hive
# Edit ./conf/hive-default.xml
# and modify the property 'javax.jdo.option.ConnectionURL'
# to 'jdbc:derby:;databaseName=/opt/cloudera/data/hive/metastore_db;create=true'
# Edit ./conf/hive-log4j.properties
# and modify the property 'hive.log.file'
# to '/opt/cloudera/data/hive/hive.log'
# (SVN only) modify property 'hive.stats.dbconnectionstring'
# to 'jdbc:derby:;databaseName=/opt/cloudera/data/hive_temp_stats;create=true'
# For mysql,
# modify 'javax.jdo.option.ConnectionURL'
# to 'jdbc:mysql://127.0.0.1/hive?createDatabaseIfNotExist=true'
# and 'javax.jdo.option.ConnectionDriverName'
# to 'com.mysql.jdbc.Driver'
# and 'javax.jdo.option.ConnectionUserName'
# to 'your_username'
# and 'javax.jdo.option.ConnectionPassword'
# to 'your_password'

# Configure Hue
# Note: from memory, you might also need mysql
sudo port install py26-setuptools
ln -sf /opt/local/bin/mysql_config5 /opt/local/bin/mysql_config
cd hue-common-0.9
make apps
# EDIT $HUE_HOME/desktop/conf/hue.ini and
# update the property "hadoop_home" from "/usr/lib/hadoop-0.20"
# to "/opt/cloudera/hadoop-0.20.2+320"

# Configure Hadoop
cd $HADOOP_HOME/lib
ln -s $HUE_HOME/desktop/libs/hadoop/java-lib/hue-plugins-0.9.jar
mv hadoop-0.20.2+320/conf hadoop-0.20.2+320/conf.bck
cp -rp hue/example-hadoop-confs/conf.pseudo-hue hadoop-0.20.2+320/conf
# Edit the file $HADOOP_HOME/conf/core-site.xml and replace
# the value "/var/lib/hadoop-0.20/cache/${user.name}" by
# "/opt/cloudera/data/cache/${user.name}"
# Edit the file $HADOOP_HOME/conf/hdfs-site.xml and replace
# the value "/var/lib/hadoop-0.20/cache/hadoop/dfs/name" by
# "/opt/cloudera/data/cache/${user.name}/dfs/name"
hadoop namenode -format

Utilisation

Démarrage des services

1
2
3
4
5
6
7
8
# Start Hadoop
start-all.sh
# Start HBase
start-hbase.sh
hbase-daemon.sh start rest
# Start Hue
cd $HUE_HOME
./build/env/bin/supervisor

Arrêt des services

1
2
3
4
5
6
 
# Start Hadoop
stop-all.sh
# Start HBase
hbase-daemon.sh stop rest
stop-hbase.sh

Administration

Si l’installation s’est déroulée sans encombre, les URLs suivantes devrait être disponibles:

  • Hadoop Map/Reduce Administration: http://localhost:50030
  • Hadoop File System Browser: http://localhost:50070
  • Hadoop Task Tracker Status: http://localhost:50060
  • Hue: http://localhost:8088

Comments