Déploiement de CDH 6.0.1 sur CentOS 7 en mode mono-machine

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.

Étiquettes: CDH Cloudera Manager CentOS 7 MySQL Docker

Publié le 21 juillet à 09h48