Utilisation de Cloudera Deploy pour installer Cloudera Data Platform (CDP) Private Cloud

Suite à notre récente Présentation de la plate-forme de données Cloudera (CDP), nous expliquons comment déployer le cloud privé CDP sur votre infrastructure locale. Il est entièrement automatisé avec les livres de recettes Ansible édités par Cloudera et il est reproductible sur votre hébergeur local avec Vagrant.

CDP est un cloud de données d’entreprise. Il fournit une plate-forme Big Data puissante, une sécurité intégrée avec conformité et gouvernance automatiques de la protection des données, ainsi que des analyses basées sur des règles et basées sur des métadonnées pour les utilisateurs finaux.

Déploiement d’un Cloud privé CDP cluster n’est pas une tâche simple. Par conséquent, nous présentons un moyen de mettre en place un cluster local en quelques étapes simples. Nous allons déployer un cluster de base composé de deux nœuds, un maître et un travailleur. Dans notre cluster, nous exécuterons les services suivants : HDFS, YARN et Zookeeper.

Conditions préalables

Vous pouvez utiliser l’infrastructure locale de votre choix pour déployer CDP Private Cloud. Dans ce tutoriel, nous utiliserons Vagabond et VirtualBox pour démarrer rapidement deux machines virtuelles qui serviront de nœuds du cluster.

VirtualBox

VirtualBox est une application de virtualisation multiplateforme. Téléchargez la dernière version de VirtualBox.

Vagabond

Vagrant est un outil de création et de gestion d’environnements de machines virtuelles. Téléchargez la dernière version de Vagabond.

Une fois Vagrant installé, vous devez installer un plug-in qui installe automatiquement les suppléments invité VirtualBox de l’hôte sur le système invité. Ouvrez un terminal et tapez la commande suivante :

vagrant plugin install vagrant-vbguest

Docker

Cloudera Deploy est exécuté à partir d’un conteneur Docker. Lorsqu’il est exécuté, il démarre le cluster. Suivez les instructions officielles de Docker pour installer Docker sur votre machine :

Commencer

Amorcez vos nœuds

UN Vagrantfile est utilisé pour configurer et provisionner des machines virtuelles projet par projet. Assurez-vous d’avoir une clé ssh sur votre machine hôte avant de continuer. Si aucun n’est fourni, le Quickstart (section suivante) générera une paire de clés SSH. Créez un nouveau fichier appelé Vagrantfile dans votre répertoire de travail et collez le code suivant :

box = "centos/7"

Vagrant.configure("2") do |config|
  config.vm.synced_folder ".", "/vagrant", disabled: true
  config.ssh.insert_key = false
  config.vm.box_check_update = false
  ssh_pub_key = File.readlines("#Dir.home/.ssh/id_rsa.pub").first.strip
  config.vm.provision "Add ssh_pub_key", type: "shell" do |s|
    s.inline = <<-SHELL
      echo #ssh_pub_key >> /home/vagrant/.ssh/authorized_keys
      sudo mkdir -p /root/.ssh/
      sudo echo #ssh_pub_key >> /root/.ssh/authorized_keys
      sudo touch /home/vagrant/.ssh/config
      sudo chmod 600 /home/vagrant/.ssh/config
      sudo chown vagrant /home/vagrant/.ssh/config
    SHELL
  end
  config.vm.define :master01 do |node|
    node.vm.box = box
    node.vm.network :private_network, ip: "10.10.10.11"
    node.vm.network :forwarded_port, guest: 22, host: 24011, auto_correct: true
    node.vm.network :forwarded_port, guest: 8080, host: 8080, auto_correct: true
    node.vm.provider "virtualbox" do |d|
      d.memory = 8192
    end
    node.vm.hostname = "master01.nikita.local"
  end
  config.vm.define :worker01 do |node|
    node.vm.box = box
    node.vm.network :private_network, ip: "10.10.10.16"
    node.vm.network :forwarded_port, guest: 22, host: 24015, auto_correct: true
    node.vm.provider "virtualbox" do |d|
      d.customize ["modifyvm", :id, "--memory", 2048]
      d.customize ["modifyvm", :id, "--cpus", 2]
      d.customize ["modifyvm", :id, "--ioapic", "on"]
    end
    node.vm.hostname = "worker01.nikita.local"
  end
end

La master01 nœud a le master01.nikita.local FQDN et le 10.10.10.11 IP. La worker01 nœud a le master01.nikita.local FQDN et le 10.10.10.16 IP.

Exécutez maintenant la commande suivante :

Il crée deux machines virtuelles connectées qui constituent un petit cluster.

Modifier votre section locale /etc/hosts fichier en ajoutant les lignes suivantes :

10.10.10.11 master01.nikita.local
10.10.10.16 worker01.nikita.local

Connectez-vous maintenant à master01 en utilisant ssh :

Ajoutez ou modifiez les lignes suivantes au /etc/hosts dossier:

10.10.10.11 master01.nikita.local
10.10.10.16 worker01.nikita.local

Répétez l’opération en vous connectant à worker01.

Télécharger le script de démarrage rapide

La quickstart.sh Le script configurera le conteneur Docker avec les dépendances logicielles dont vous avez besoin pour le déploiement. Téléchargez-le sur votre ordinateur hôte à l’aide de la commande suivante :

curl https://raw.githubusercontent.com/cloudera-labs/cloudera-deploy/main/quickstart.sh -o quickstart.sh

Exécutez le script de démarrage rapide

Le script préparera et exécutera Ansible Runner dans un conteneur Docker.

chmod +x quickstart.sh
./quickstart.sh

Vous devriez voir le cldr build-version #> invite orange. Vous êtes maintenant à l’intérieur du conteneur.

Créer un fichier d’inventaire

Naviguez vers le cloudera-deploy dossier:

Créez un nouveau fichier appelé inventory_static.ini qui contient vos hosts :

[cloudera_manager]
master01.nikita.local

[cluster_master_nodes]
master01.nikita.local host_template=Master1

[cluster_worker_nodes]
worker01.nikita.local

[cluster_worker_nodes:vars]
host_template=Workers

[cluster:children]
cluster_master_nodes
cluster_worker_nodes

[db_server]
master01.nikita.local

[deployment:children]
cluster
db_server

[deployment:vars]



ansible_user=vagrant

Configurer le cluster

Régler use_download_mirror à no dans le fichier de définition situé à examples/sandbox/definition.yml pour éviter de déclencher un comportement qui repose sur les services de cloud public.

Exécuter le playbook principal

ansible-playbook /opt/cloudera-deploy/main.yml -e "definition_path=examples/sandbox" -e "profile=/opt/cloudera-deploy/profile.yml" -i /opt/cloudera-deploy/inventory_static.ini -t default_cluster

La commande crée un cluster CDP Private Base à l’aide de votre infrastructure locale. Plus précisément, il déploie un cluster avec HDFS, YARN et Zookeeper.

Conclusion

La plate-forme de données Cloudera peut être déployée de différentes manières, ce qui en fait une option polyvalente lorsque l’on envisage une plate-forme de données. Dans cet article, nous avons décrit comment déployer un cluster CDP Private Cloud avec les scripts de déploiement officiels de Cloudera. Cela permet à l’utilisateur de tester la plateforme localement et de prendre des décisions commerciales pertinentes. À partir de là, vous pouvez ajouter des services à votre cluster et configurer les composants intégrés de CDP Private Cloud.

Dépanner

Si vous rencontrez des problèmes avec SSH entre l’hôte et les deux machines virtuelles, vous pouvez forcer l’installation de Virtualbox Guest Additions pour master01 et worker01 en ajoutant la ligne suivante à leurs configurations individuelles dans Vagrantfile:

node.vbguest.installer_options =  allow_kernel_upgrade: true 

SSH_AUTH_SOCK

Le script quickstart.sh peut se fermer brusquement s’il détecte que le SSH_AUTH_SOCK chemin n’est pas correctement défini ou vide. Si vous rencontrez cette erreur, exécutez d’abord la commande suivante :

Cela renvoie le chemin vers le socket unix utilisé par ssh-agent, qui doit être ajouté en tant que variable SSH_AUTH_SOCK au script de démarrage rapide pour que ssh fonctionne correctement ; votre script de démarrage rapide devrait maintenant ressembler à ceci :




Variable SSH_AUTH_SOCK dans quickstart.sh

Dans cet exemple, le chemin du socket est “/run/user/1000/keyring/ssh”.

Leave a Reply