Il semble que Yellowfin peut maintenant être exécuté sur Docker et Kubernetes, probablement parce que la conteneurisation des applications est populaire, donc j'aimerais écrire un article de rien à l'exécution sur Docker. Avec cela, je suis vraiment reconnaissant que le POC à court terme (package tout-en-un), le bac à sable et le POC à moyen et long terme (application uniquement) puissent être effectués immédiatement. Le fichier docker, etc. est préparé ici. https://github.com/YellowfinBI/Docker https://hub.docker.com/u/yellowfinbi
Et ici, nous expliquerons en supposant qu'il sera démarré sur EC2 d'AWS.
Configurez le serveur avant d'installer le docker. En gros, mettez d'abord à jour les paramètres de langue et de fuseau horaire pour qu'ils correspondent à ceux du Japon afin que vous puissiez voir les ressources du serveur avec dstat.
sudo yum update
sudo localectl set-locale LANG=ja_JP.UTF-8
sudo timedatectl set-timezone Asia/Tokyo
sudo yum install dstat
Installez docker avec yum et définissez le démarrage du service et le démarrage automatique du service au démarrage du serveur. L'usermod sur la 4ème ligne semble être capable d'exécuter la commande docker sans sudo lorsque l'utilisateur est ajouté au groupe docker, alors ajoutez-le. Après le redémarrage, l'utilisateur vérifie la version et teste si la commande peut être exécutée en toute sécurité.
sudo yum install docker
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER
sudo reboot //Redémarrez pour appliquer
docker --version
Ceci termine l'installation de docker lui-même.
docker-compose vous permet d'écrire plusieurs définitions de conteneur dans un fichier yml, y compris des options pour la construction de Docker et le lancement de conteneur, et de l'utiliser pour créer Docker et lancer des conteneurs. Vous pourrez gérer plusieurs conteneurs avec une simple commande. Les paramètres Yellowfin sont également écrits dans le fichier yml, donc installez-le.
Souvenez-vous de la dernière version de docker-compose à ↓. https://github.com/docker/compose/releases Lorsque vous tapez avec une commande, remplacez la partie 1.27.4 par la version confirmée. L'autorisation d'exécution est donnée sur la deuxième ligne.
sudo curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
À partir de là, démarrez Yellowfin en deux modèles. Le premier modèle, le package All-in-one, inclut Yellowfin, y compris postgreSQL, donc si vous voulez juste essayer, c'est très bien. Cependant, puisque je vis avec la base de données, toutes les données seront perdues au moment où le service sera abandonné. .. Le deuxième modèle, App-only-image, est une méthode de création d'un référentiel Yellowfin en externe et de conteneurisation uniquement des applications Yellowfin. Par conséquent, même si ce service est supprimé, les données sont stockées dans la base de données. Par conséquent, si vous relancez le service, vous pouvez continuer à travailler. Vous devez juste faire attention à ce que vous deviez faire correspondre les versions de l'application et de la base de données du référentiel. Dans le cas de Yellowfin 9.3.1, la base de données du référentiel doit également avoir la configuration 9.3.1.
Obtenez l'image avec cette commande.
docker pull yellowfinbi/yellowfin-all-in-one:latest
https://github.com/YellowfinBI/Docker/blob/master/Docker%20Files/yellowfinAllInOne/Dockerfile Téléchargez le fichier de configuration à partir d'ici et enregistrez-le sous docker-compose.yml. Tapez la commande suivante dans le répertoire enregistré pour le démarrer.
[ec2-user@ip-172-31-4-99 all-in-one]$ docker-compose up -d
Creating all-in-one_yellowfin-all-in-one_1 ... done
Ensuite, visitez xxx.xxx.xxx.xxx:8080 pour ouvrir la page de connexion Yellowfin.
Cette méthode nécessite une base de données de référentiel créée / mise à jour à l'avance pour que la version soit déplacée. Par conséquent, pour créer à partir de zéro, il est nécessaire d'installer d'abord la version complète de Yellowfin, de créer une base de données de référentiel et de terminer le démarrage initial. Si vous souhaitez créer à partir de zéro, veuillez voir ici. Notes sur la création du meilleur environnement de test Yellowfin sur EC2
Maintenant, pour les étapes, copiez d'abord le lien depuis https://portal.yellowfinbi.com/yf_latestbuild.jsp et téléchargez la version complète de la dernière version.
wget https://files.yellowfin.bi/downloads/9.3/yellowfin-9.3.1-20201022-full.jar
Modifiez ensuite ce nom de fichier pour qu'il puisse être lu par yml.
mv yellowfin-9.3.1-20201022-full.jar yellowfin-installer.jar
Téléchargez Dockerfile et perform_docker_configuration.sh d'ici dans le même répertoire. https://github.com/YellowfinBI/Docker/tree/master/Docker%20Files/yellowfinAppOnly
Donnez l'autorisation d'exécution au fichier shell.
sudo chmod 764 perform_docker_configuration.sh
Créez une image.
docker build . -t yellowfin-app-only
Ensuite, le Dockerfile est lu et la commande est exécutée.
Réécrivez les informations du référentiel et exécutez la commande.
sudo docker run -d -p 80:8080 \
-e JDBC_CLASS_NAME=org.postgresql.Driver \
-e JDBC_CONN_URL=jdbc:postgresql://dbhost:5432/yellowfinDatabase \
-e JDBC_CONN_USER=dbuser \
-e JDBC_CONN_PASS=dbpassword \
yellowfin-app-only:latest
Dans ce cas, nous acheminons vers le port 80, donc lorsque vous accédez à xxx.xxx.xxx.xxx, la page de connexion Yellowfin sera affichée. Cliquez ici pour connaître l'état du conteneur à ce moment. Vous pouvez voir que le package tout-en-un est supprimé et que seul le conteneur d'image d'application uniquement est actif.
//Télécharger l'image
docker pull [option]Nom de l'image[:Nom de la balise]
//Liste des images Docker dans l'environnement local
docker images
//Exécution en arrière-plan du conteneur
docker run -d nom de l'image[:Nom de la balise] [argument]
//Afficher tous les conteneurs
docker ps -a
//Démarrer le conteneur
ID du conteneur de démarrage du docker
//Arrêtez le conteneur
identifiant du conteneur d'arrêt docker
//Supprimer le conteneur
identifiant du conteneur docker rm
Dès que vous construisez cela, vous pouvez créer un bac à sable, ou il sera lancé en tant que service distinct de la base de données, afin que vous puissiez créer un environnement plus confortable. C'était difficile à commander si je n'y étais pas habitué, mais j'ai l'impression de l'avoir compris en l'utilisant. Pour la documentation officielle, veuillez contacter Yellowfin Japan pour un livre blanc. Je voudrais contester le clustering avec Docker et la construction avec Kubernetes quand j'ai un peu de temps.
Installation de docker et docker-compose (Linux) Introduction à Docker (6th) ~ Docker Compose ~ Liste des commandes Docker