Commencer par installer Docker sur EC2 et exécuter Yellowfin dans un conteneur

image.png

Tout d'abord

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.

Préparation préalable

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

installation de docker

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.

Installez docker-compose

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

Exécutez Yellowfin avec Docker

À 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.

Exécutez Yellowfin avec le package tout-en-un

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.

Exécutez Yellowfin avec une image d'application uniquement

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. image.png

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. image.png

Commandes utiles

//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

Donc

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.

J'ai été autorisé à faire référence.

Installation de docker et docker-compose (Linux) Introduction à Docker (6th) ~ Docker Compose ~ Liste des commandes Docker

Recommended Posts

Commencer par installer Docker sur EC2 et exécuter Yellowfin dans un conteneur
[Note] Créez un environnement Python3 avec Docker dans EC2
Un mémorandum lors de l'installation de Docker et de la construction d'un conteneur Linux
[Docker] Comment mettre à jour à l'aide d'un conteneur dans Heroku et comment gérer l'erreur de migration
Exécuter PureScript sur un conteneur Docker
Avec podman dans docker, tout le monde veut s'entendre et utiliser docker avec un ordinateur partagé
Emplacement des paramètres de l'espace de travail lors de la connexion à distance avec VSCode et du travail sur un conteneur Docker
Lancer un conteneur docker sur EC2 (mémorandum personnel)
Grattage avec marionnettiste à Nuxt sur Docker.
Mettez Zabbix dans Ubuntu avec Docker et surveillez Docker sur le même hôte
Comment démarrer un conteneur Docker avec un volume monté dans un fichier de commandes
Garder un conteneur Docker en cours d'exécution sans aucun processus résident en cours d'exécution
J'ai installé Docker sur EC2 et l'ai démarré
Surveillez le conteneur Docker et le processus SystemD sur le même hôte avec Zabbix sur Ubuntu.
Mettre à jour l'image du conteneur avec KUSANAGI s'exécute sur Docker
Préparer un environnement de scraping avec Docker et Java
J'ai essayé d'installer docker sur une instance EC2
[Partie 1] Création d'un conteneur Docker qui fournit Markdown en HTML avec Apache / Pandoc
Créez une image de conteneur pour l'arm64 de Kibana et enregistrez-la dans le registre de conteneurs GitHub. Démarrez Elastic Stack avec Docker Compose sur Raspberry Pi 4 (64 bits)
Comment créer un serveur Jenkins avec un conteneur Docker sur CentOS 7 de VirtualBox et accéder au serveur Jenkins à partir d'un PC local
Installez Ubuntu 20.04 dans la boîte virtuelle sur Windows10 et créez un environnement de développement à l'aide de docker
Accéder et déboguer le conteneur Docker Circle CI avec ssh
L'histoire du transfert d'un conteneur Docker vers le registre de packages GitHub et Docker Hub avec des actions GitHub
Comment développer dans un conteneur avec --privileged et / sbin / init passés dans VSCode Remote Containers
Copiez et collez le contenu du fichier dans le conteneur Ubuntu Docker
[Docker] Créez un site avec Hugo et publiez-le sur GitHub
Exécutez PHP-FPM avec OPcache activé dans un conteneur en lecture seule
Installez docker et docker-compose sur ubuntu dans les plus brefs délais
[Docker] Supprimer uniquement le volume associé à un conteneur spécifique
L'heure ne va pas avec l'application lancée sur le conteneur Docker
Essayez Hello World en utilisant Java brut sur le conteneur Docker
Transformez facilement les applications Java en conteneurs Docker avec Jib ~ Construisez avec gradle et enregistrez-vous dans le référentiel local
Organisez la communication dans un environnement qui utilise diverses ressources sur la machine hôte et le conteneur Docker
Avec [AWS] CodeStar, vous pouvez créer un projet Spring (Java) s'exécutant sur Lambda en seulement 3 minutes! !!
Déployer avec EC2 / Docker / Laravel
Spring Boot à partir de Docker
Installer docker sur AWS EC2
Résumé des procédures de développement dans un conteneur Docker avec VS Code
(Ruby on Rails6) Créer une base de données et l'afficher dans une vue