Comment installer Apache Cassandra 3.11.x sur Ubuntu 16.04 LTS
Vous utilisez un système différent? Apache Cassandra est un système de gestion de base de données NoSQL gratuit et open source conçu pour fournir une évolutivité
Depuis sa conception en 2009, MongoDB est à la pointe de l'industrie NoSQL. L'un des concepts de base de MongoDB est le jeu de répliques, donc avant de travailler avec lui, examinons d'abord le concept.
Le modèle de communication le plus simple utilisé dans la réplication des bases de données est l'architecture maître-esclave. Comme son nom l'indique, ce modèle a 2 rôles qui sont répartis dans un maître unique et de nombreux esclaves, le rôle du maître est de traiter les opérations de lecture et d'écriture effectuées par les clients et les esclaves sont traités comme une réplique du maître.
L'avantage le plus important de ce modèle est que les performances du maître ne sont pas compromises par les opérations de sauvegarde, les opérations de sauvegarde sont effectuées de manière asynchrone et cela peut devenir un problème grave en cas de défaillance d'un nœud maître. Les nœuds esclaves sont en lecture seule et ils doivent être promus manuellement au nœud maître, donc dans ce temps, il y a la possibilité de perdre des données.
Une option pour résoudre le problème de disponibilité est d'avoir plus d'un maître dans l'architecture, mais cela peut entraîner un autre problème dans la cohérence des données entre ces instances et la complexité supplémentaire de la configuration.
Maintenant, dans un contexte donné, nous pouvons présenter la technologie Replica Set de MongoDB. Le jeu de répliques est le nom de l'architecture maître-esclave qui a un basculement automatique, donc au moment où un primary
nœud maître (qui est maintenant nommé ) ne fonctionne pas correctement, un election
déclencheur se déclenchera et un nouveau nœud principal sera choisi parmi les esclaves restants ( dénommé maintenant secondaries
).
Le nœud principal est le seul à effectuer des opérations d'écriture, par défaut, les opérations de lecture sont également gérées par le principal, mais ce comportement peut être modifié ultérieurement.
Les opérations sont enregistrées dans le oplog
(journal des opérations), puis les nœuds secondaires mettent à jour leur contenu de manière asynchrone en fonction du contenu duoplog
Remarque: oplog
est une collection plafonnée, cela signifie que la collection a une limite, avec local.oplog.rs
vous pouvez vérifier le contenu de cette collection à l'intérieur d'un shell mongo dans n'importe quel membre de l'ensemble.
En plus d'être ceux qui effectuent une sauvegarde correcte de la base de données, un nœud secondaire a ces rôles:
Grâce à ces caractéristiques, nous pouvons avoir différents types de nœuds secondaires:
primary
et ne peuvent pas déclencher une élection, ils peuvent néanmoins voter aux élections, avoir une réplique complète et accepter les opérations de lecture. Ceux-ci peuvent être utiles dans le déploiement de plusieurs centres de données.Priority 0
membres, mais en plus ils ne peuvent pas traiter les opérations de lecture. Ils peuvent voter si nécessaire. Les tâches préférées de ces membres sont les rapports et les sauvegardes.priority 0
nœud, et il est recommandé qu'il soit hidden
également membre.Avant de déployer une infrastructure, il est important de la concevoir, et il y a des points à considérer dans cette conception.
N'oubliez pas que le nombre minimum d'éléments pour créer un jeu de réplicas est de 3. Vous pouvez mélanger les trois types de nœuds avec au moins un nœud principal et un nœud secondaire.
Dans ce guide, nous déployons 3 membres, un primaire et deux secondaires standard.
Remarque: Il est recommandé d'avoir un nombre maximum de 7 membres votants avec un mélange d'arbitres et de membres secondaires.
Le nom est juste pour référence mais vous l'utilisez dans la configuration de l'ensemble. Gardez à l'esprit que vous pouvez avoir plus d'un jeu de réplicas dans votre environnement de production, alors ne négligez pas le nom de votre jeu.
Ce didacticiel encourage l'utilisateur à sélectionner le nom de l'ensemble.
Ce didacticiel suggère de déployer sur le même centre de données afin d'éviter les problèmes de communication.
Remarque: En cas de déploiement dans différents centres de données, il est recommandé d'envelopper vos nœuds avec un VPN
Lancez 3 nœuds d'Ubuntu 16.04 x64; dans la même région à partir de votre portail client, si possible. N'oubliez pas de les nommer en fonction du type de projet que vous traitez et assurez-vous d'avoir la même taille de serveur dans tous ces nœuds.
Après avoir déployé vos 3 nœuds, vous devrez vous assurer que chaque nœud peut parler avec les autres. Vous devez ssh en deux nœuds et atteindre les autres en utilisant ping -c 4 EXAMPLE_IP
. Modifiez EXAMPLE_IP
les adresses IP réelles de vos nœuds.
Ici, vous pouvez voir un exemple de communication réussie entre deux nœuds.
root@foo_node:~# ping -c 4 EXAMPLE_IP
PING EXAMPLE_IP (EXAMPLE_IP) 56(84) bytes of data.
64 bytes from EXAMPLE_IP: icmp_seq=1 ttl=59 time=0.594 ms
64 bytes from EXAMPLE_IP: icmp_seq=2 ttl=59 time=0.640 ms
64 bytes from EXAMPLE_IP: icmp_seq=3 ttl=59 time=0.477 ms
64 bytes from EXAMPLE_IP: icmp_seq=4 ttl=59 time=0.551 ms
--- EXAMPLE_IP ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3021ms
rtt min/avg/max/mdev = 0.477/0.565/0.640/0.064 ms
En général, vous pouvez utiliser le paquet MongoDB d'Ubuntu, mais il est préférable d'utiliser le dépôt officiel de la communauté car il est toujours à jour. Ce dépôt contient ces packages:
mongod
démon (processus principal qui gère les demandes de données).mongos
démon (service de routage pour les déploiements partagés).mongo shell
interface JavaScript.Passez à l'installation des packages.
Importez la clé publique dans le système de gestion des packages.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Créez le fichier de liste pour MongoDB '/etc/apt/sources.list.d/mongodb-org-3.4.list'.
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Mettez à jour la base de données des packages.
sudo apt-get update
Installez le métapaquet MongoDB.
sudo apt-get install -y mongodb-org
Démarrez le service MongoDB.
sudo service mongod start
Vous pouvez maintenant ouvrir le mongo shell
dans n'importe quelle session bash. Pour ce faire, vous devez utiliser la mongo
commande. Vous serez accueilli par quelque chose de similaire à cela.
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
*Some extra logs are cut by the way*
>
N'oubliez pas de couper le service avec sudo service mongod stop
, car plus tard nous mongod
recommencerons avec quelques paramètres. Répétez ce processus dans les 3 nœuds de l'ensemble.
L'utilisation d'un fichier clé force deux concepts dans l'administration du jeu de réplicas. Le premier est Internal Authentication
. Par défaut, vous pouvez démarrer une mongo shell
session sans utiliser d'utilisateur et cette session aura le contrôle total de la base de données, mais lorsque vous utilisez un fichier de clés pour l'authentification, votre mongo shell
session atteint un état appelé localhost exception
. Cet état vous permet uniquement de créer l'utilisateur administrateur et le jeu de réplicas. Le deuxième concept est Role-Based Access Control
, ou en d'autres termes, l'autorisation. Ceci est appliqué pour régir les niveaux administratifs du jeu de réplicas.
Le fichier de clés est le mot de passe à utiliser dans l'ensemble, ce mot de passe doit être le même pour tous les membres de l'ensemble. Pour augmenter la sécurité, il est important d'utiliser une clé aléatoire avec l'outil de votre choix.
Le contenu doit comporter entre 6 et 1064 caractères. Vous devez également définir l' read only
autorisation pour le fichier de clés.
chmod 400 PATH_OF_YOUR_KEYFILE
Copiez maintenant votre fichier de clés sur chaque membre de l'ensemble, veuillez utiliser un dossier cohérent pour référence future et ne le stockez pas sur un support amovible.
Utilisez également un dossier pour le fichier auquel vous mongod
pouvez accéder.
Dans cette étape, nous devons démarrer le mongod daemon
dans chaque membre de l'ensemble . Il existe deux façons de démarrer le mongod
processus: en utilisant un fichier de configuration ou en utilisant la ligne de commande. Les deux sont des méthodes assez simples, mais pour plus de simplicité, ce tutoriel utilise la version en ligne de commande.
Utilisez le nom que vous avez choisi précédemment dans cette commande.
mongod --keyFile PATH_OF_YOUR_KEYFILE --replSet "YOUR_SET_NAME"
Par défaut, mongod
ne s'exécute pas en tant que démon. Vous devrez utiliser le --fork
paramètre ou utiliser le upstart
pour l'exécuter complètement en tant que démon. Dans ce didacticiel, nous n'encourageons pas l'exécution en mongod
tant que démon afin que vous puissiez voir les journaux directement dans votre terminal.
Remarque: Tapez soigneusement le nom du jeu de réplicas, car une fois créé, vous ne pouvez pas le modifier.
Remarque: Si vous exécutez en mongod
tant que processus non démon, vous devrez alors ouvrir une autre connexion ssh pour continuer à travailler.
Vous devez utiliser la mongo
commande pour ouvrir le fichier mongo shell
. Cela peut être fait dans n'importe quel membre de l'ensemble.
En ce moment, nous sommes dans un état appelé localhost exception
. Lorsqu'un fichier clé est utilisé pour configurer le mongod
processus, vous êtes obligé de créer un administrateur de base de données avant de pouvoir appliquer des opérations de lecture-écriture, mais nous y reviendrons plus tard.
C'est une partie délicate, nous utilisons la commande rs.initiate()
à l'intérieur de l' mongo shell
étape 4. Avant d'utiliser cette commande, examinons-la.
rs.initiate(
{
_id : <replicaSetName>,
members: [
{ _id : 0, host : "example1.net:27017" },
{ _id : 1, host : "example2.net:27017" },
{ _id : 2, host : "example3.net:27017" }
]
}
)
Le premier _id
champ est une chaîne et doit correspondre à celui --replSet
qui a été transmis avant à mongod
. En outre, chaque valeur de host
doit être l'IP ou le nom de domaine de chaque membre du jeu de réplicas. N'oubliez pas d'ajouter le port que l'instance mongo utilise dans chaque membre.
Il est maintenant temps d'exécuter la commande avec vos données dessus, cela déclenchera un election
, puis un primaire sera élu automatiquement.
Ici, vous devez noter que votre curseur shell a changé en YOUR_SET_NAME:PRIMARY>
ou YOUR_SET_NAME:SECONDARY
. Cela signifie que la création d'un ensemble a été un succès.
Pour continuer à travailler, vous devez trouver le primary
, si vous n'y êtes pas bien sûr. Utilisez la rs.status()
commande pour afficher les informations du jeu de réplicas et recherchez le fichier primary
. Vous recherchez la propriété "stateStr" : "PRIMARY"
.
Après avoir localisé le primary
, entrez le mongo shell
et exécutez la commande suivante à l'aide de vos données.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOU_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
La admin = db.getSiblingDB("admin")
partie nous permet d'écrire à admin
partir d'une base de données différente. Cela crée un alias appelé admin
, afin que nous puissions exécuter des commandes à la place.
Si l'opération réussit, vous recevrez une notification indiquant que l'utilisateur a été ajouté.
Successfully added user: {
"user" : "YOUR_USER",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
À ce stade, nous n'avons qu'un administrateur pour tous les serveurs, mais le fait d'avoir un jeu de réplicas nous oblige à avoir un utilisateur avec le clusterAdmin
rôle. Nous allons créer un autre utilisateur avec uniquement ce rôle pour séparer les préoccupations.
Nous avons atteint la limite de la localhost exception
, c'est pourquoi nous devons changer l'authentification à l'utilisateur créé une étape avant.
Vous pouvez changer les utilisateurs à l'intérieur du mongo shell
avec ce qui suit.
db.getSiblingDB("admin").auth("YOUR_ADMIN", "YOUR_PASSWORD" )
Si vous n'êtes pas déjà connecté à la place, mongo shell
utilisez cette commande.
mongo -u "YOUR_ADMIN" -p "YOUR_PASSWORD" --authenticationDatabase "admin"
Vous serez averti du changement d'un utilisateur et vous pourrez passer à l'étape suivante.
Le clusterAdmin
rôle donne à l'utilisateur le contrôle total du jeu de réplicas. La création est aussi simple que la création de l'utilisateur administrateur.
db.getSiblingDB("admin").createUser(
{
"user" : "YOUR_USER",
"pwd" : "YOUR_PASSWORD",
roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
}
)
Notez que cette fois le rôle est changé enclusterAdmin
.
En ce moment, nous avons 2 utilisateurs administrateurs: un qui a un contrôle total sur le serveur et un autre qui a accès aux tâches administratives au niveau du jeu de réplicas. Cependant, il nous manque un utilisateur qui a accès à "utiliser" une base de données, nous allons donc créer cet utilisateur maintenant.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOUR_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "cars" } ]
}
)
Remarquez que cette fois nous changeons de db
pièce, là nous mettons la base de données accessible à l'utilisateur, dans ce cas nous utilisons une base de données nommée cars
.
La base de données n'est pas encore créée. Pour ce faire, vous devrez taper quelques commandes pour le créer implicitement. Basculez vers la cars
base de données.
use cars
Vous recevrez une notification: switched to db cars
.
La base de données n'a toujours pas été créée, pour cela, vous devez y écrire quelque chose. Nous utilisons l'exemple suivant.
db.models.insert({ make: "Dodge", model: "Viper", year: 2010 })
Cette fois, vous en serez informé WriteResult({ "nInserted" : 1 })
.
Si vous le souhaitez, vous pouvez récupérer tous les objets de la base de données, avec la find()
méthode:
db.models.find()
{ "_id" : ObjectId("59acd8b55334882863541ff4"), "make" : "Dodge", "model" : "Viper", "year" : 2010 }
Notez que ce _id
sera différent dans votre sortie, mais les autres données devraient être les mêmes. Avec suffisamment de temps, ces données seront répliquées vers les autres membres.
La création d'un jeu de répliques peut être difficile au début, car il y a beaucoup d'informations à comprendre, mais une fois que vous avez l'idée derrière vous, vous pouvez le déployer en un rien de temps, alors n'abandonnez pas si vous ne pouvez pas le saisir dans votre première fois. Gardez à l'esprit que le jeu de réplicas est important dans l'administration MongoDB car il ouvre la possibilité d'ajouter des fonctionnalités avancées telles que l'équilibrage de charge.
Vous utilisez un système différent? Apache Cassandra est un système de gestion de base de données NoSQL gratuit et open source conçu pour fournir une évolutivité
MongoDB nest pas sécurisé par défaut. Si vous installez MongoDB et le lancez sans le configurer pour lauthentification, vous allez avoir un mauvais moment
Redis est un magasin de structure de données. Il est populaire auprès des sites WordPress car il offre de grandes améliorations de performances en raison de son approche optimisée de la mise en cache.
MySQL est le logiciel le plus populaire au monde utilisé pour les bases de données. Il est très important de vous assurer que vous disposez de sauvegardes de votre base de données. Cette pratique permet
MongoDB est une base de données NoSQL rapide et puissante. Cependant, les référentiels Debian se mettent à jour lentement et contiennent souvent de très anciennes versions de paquets. Ce tutoriel
Vous utilisez un système différent? Apache Cassandra est un système de gestion de base de données NoSQL gratuit et open source conçu pour fournir une évolutivité
Introduction MyCLI est un client de ligne de commande pour MySQL et MariaDB qui vous permet de compléter automatiquement et aide à la syntaxe de vos commandes SQL. MyCL
Prérequis Un serveur Vultr fonctionnant sous Arch Linux à jour (voir cet article) Accès Sudo: les commandes devant être exécutées en tant que root sont préfixées par #, et une
Dans cet article, je vais vous montrer comment installer MariaDB sur OpenBSD 6 et le configurer pour quil soit accessible à un serveur Web chrooté (Apache ou Nginx). Vous serez également
Vous utilisez un système différent? Introduction ArangoDB est une base de données NoSQL open source avec un modèle de données flexible pour les documents, les graphiques et les valeurs-clés. Cest
Prérequis Un serveur Vultr fonctionnant sous Arch Linux à jour (voir cet article.) Accès Sudo. Les commandes devant être exécutées en tant que root sont préfixées par # et une
Prérequis Un serveur Vultr exécutant Arch Linux à jour (voir cet article.) Accès Sudo: les commandes devant être exécutées en tant que root sont préfixées par #, et une
Introduction Dans cet article, expliquez comment sauvegarder plusieurs bases de données MySQL ou MariaDB qui reposent sur la même machine à laide dun script bash personnalisé
Vous utilisez un système différent? Introduction ArangoDB est une base de données NoSQL open source avec un modèle de données flexible pour les documents, les graphiques et les valeurs-clés. Cest
Redis est une solution de stockage de données clé-valeur, souvent appelée une base de données NoSQL. Il peut atteindre des vitesses de lecture / écriture très élevées car il sagit dun bu en mémoire
Laravel GitScrum, ou GitScrum est un outil de productivité open source conçu pour aider les équipes de développement à mettre en œuvre la méthodologie Scrum dune manière similaire à t
Prérequis Docker engine 1.8+. Minimum de 4 Go despace disque. Minimum de 4 Go de RAM. Étape 1. Installer Docker Pour installer SQL-Server, Docker mus
MariaDB est une base de données open source gratuite, et est le remplacement libre le plus utilisé pour MySQL. Il est fait par les développeurs de MySQL et destiné à remai
La sauvegarde est une partie importante du traitement des bases de données. Que vous gériez un site dentreprise ou que vous hébergiez simplement WordPress, il est important de vous sauvegarder
Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau
ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.
Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+
Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.
Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus
13 outils commerciaux d'extraction de données de Big Data
Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true
Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.
Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1
L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.