Préparation du système d'exploitation
Attribuez un nom d'hôte explicite à la machine :
hostnamectl set-hostname hadoop-single
Ajoutez la résolution locale dans /etc/hosts :
cat <<'EOF' >> /etc/hosts
192.168.159.133 hadoop-single
EOF
Désactivez SELinux puis le pare-feu :
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
Configurez l'authentification par clé SSH pour l'administrateur local :
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id hadoop-single
Synchronisation de l'horloge
Utilisez chrony pour garantir une horloge cohérente :
yum -y install chrony
systemctl enable chronyd
systemctl start chronyd
chronyc tracking
Installation du JDK
Cloudera Manager attend Java sous /usr/java. Déployez-le de la manière suivante :
mkdir -p /usr/java
tar -zxf /opt/jdk-8u*-linux-x64.tar.gz -C /usr/java
ln -s /usr/java/jdk1.8.0_* /usr/java/default
Déclarez les variables d'environnement :
cat >> /etc/profile <<'EOF'
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
EOF
source /etc/profile
java -version
Déploiement de MySQL avec Docker
Installez Docker et configurez un miroir d'acélération :
yum -y install docker
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF
systemctl enable docker
systemctl start docker
Lancez un conteneur MySQL 5.7 :
docker run --name mysql-cdh \
-e MYSQL_ROOT_PASSWORD=Admin123 \
-d --restart=always \
-p 3306:3306 \
mysql:5.7
Créez les bases de données nécessaires :
docker exec -i mysql-cdh mysql -uroot -pAdmin123 <<'EOF'
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'Scm_Pass_01';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'Rman_Pass_01';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'Hue_Pass_01';
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'Meta_Pass_01';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'Sentry_Pass_01';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'Nav_Pass_01';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'Navms_Pass_01';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'Oozie_Pass_01';
EOF
Installation de Cloudera Manager
Récupérez les RPM correspondants puis installez-les :
cd /opt
wget https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
wget https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm
wget https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
yum -y localinstall cloudera-manager-*.rpm
Générez les certificats internes :
JAVA_HOME=/usr/java/default /opt/cloudera/cm-agent/bin/certmanager setup --configure-services
Configurez la base de données du serveur Cloudera Manager :
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h hadoop-single scm root Admin123
Démarrage des services
Démarrez le serveur et surveillez son journal :
systemctl start cloudera-scm-server
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
Une fois la ligne ci-dessous visible, le service est prêt :
INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.
Configurez l'agent local puis démarrez-le :
sed -i 's/server_host=.*/server_host=hadoop-single/' /etc/cloudera-scm-agent/config.ini
systemctl start cloudera-scm-agent
systemctl status cloudera-scm-agent
Configuration finale via l'interface Web
Ouvrez un navigateur et connectez-vous à :
http://192.168.159.133:7180
Identifiants par défaut : admin / admin.
Depuis l'assistent, choisissez le dépôt Cloudera CDH 6.0.1 et sélectionnez les rôles et services que vous souhaitez déployer sur ce seul nœud.