Come installare Apache Cassandra 3.11.x su CentOS 7
Usi un sistema diverso? Apache Cassandra è un sistema di gestione di database NoSQL gratuito e open source progettato per fornire scalabilità, alta
Fin dalla sua concezione nel 2009 MongoDB ha guidato l'industria NoSQL. Uno dei concetti chiave di MongoDB è il set di repliche, quindi prima di utilizzarlo, esaminiamo il concetto.
Il modello di comunicazione più semplice utilizzato nella replica dei database è l'architettura Master-Slave. Come suggerisce il nome, questo modello ha 2 ruoli che sono distribuiti in un unico master e in molti slave, il ruolo del master è quello di elaborare le operazioni di lettura e scrittura eseguite dai client e gli slave vengono trattati come una replica del master.
Il vantaggio più importante di questo modello è che le prestazioni del master non sono compromesse dalle operazioni di backup, le operazioni di backup vengono eseguite in modo asincrono e questo può diventare un problema serio in caso di guasto di un nodo master. I nodi slave sono di sola lettura e devono essere promossi manualmente nel nodo principale, quindi in questo momento esiste la possibilità di perdere dati.
Un'opzione per risolvere il problema di disponibilità è quella di avere più di un master nell'architettura, ma ciò può portare a un altro problema nella coerenza dei dati tra tali istanze e la maggiore complessità della configurazione.
Ora dato il contesto possiamo presentare la tecnologia del set di repliche di MongoDB. Il set di repliche è il nome dell'architettura Master-Slave con failover automatico, quindi nel momento in cui un primary
nodo master (che ora è denominato ) non funziona correttamente election
si innescherà un nodo e un nuovo nodo primario verrà eletto dai restanti slave ( indicato ora come secondaries
).
Il nodo primario è l'unico che esegue operazioni di scrittura, per impostazione predefinita anche le operazioni di lettura sono gestite dal primario ma questo comportamento può essere modificato in un secondo momento.
Le operazioni vengono registrate nel oplog
(registro delle operazioni), quindi i nodi secondari aggiornano il loro contenuto in modo asincrono in base al contenuto deloplog
Nota: oplog
è una raccolta limitata, ciò significa che la raccolta ha un limite, con il quale local.oplog.rs
è possibile verificare il contenuto di questa raccolta all'interno di una shell mongo in qualsiasi membro impostato.
Oltre ad essere quelli che eseguono un backup corretto del database, un nodo secondario ha questi ruoli:
Grazie a queste caratteristiche possiamo avere diversi tipi di nodi secondari:
primary
e non possono innescare un'elezione, possono comunque votare alle elezioni, avere una replica completa e accettare operazioni di lettura. Questi possono essere utili nella distribuzione di più data center.Priority 0
membri, ma inoltre non possono elaborare operazioni di lettura. Possono votare se necessario. Le attività preferite per questi membri sono report e backup.priority 0
nodo ed è consigliabile che siano hidden
anche membri.Prima di distribuire un'infrastruttura è importante progettarla e vi sono alcuni punti da considerare in questa progettazione.
Tenere presente che il numero minimo di elementi per creare un set di repliche è 3. È possibile combinare i tre tipi di nodi con un minimo di un nodo primario e uno secondario.
In questa guida stiamo distribuendo 3 membri, uno primario e due secondari standard.
Nota: si consiglia di avere un numero massimo di 7 membri con diritto di voto con un mix di arbitri e membri secondari.
Il nome è solo per riferimento ma lo stai usando nella configurazione del set. Tieni presente che puoi avere più di un set di repliche nel tuo ambiente di produzione, quindi non trascurare il nome del tuo set.
Questo tutorial incoraggia l'utente a selezionare il nome del set.
Questo tutorial suggerisce di implementare lo stesso data center in modo da evitare problemi di comunicazione.
Nota: in caso di distribuzione in diversi data center, si consiglia di avvolgere i nodi con una VPN
Lancia 3 nodi di Ubuntu 16.04 x64; nella stessa regione dal portale del cliente, se possibile. Non dimenticare di nominarli in base al tipo di progetto con cui hai a che fare e assicurati di avere le stesse dimensioni del server in tutti questi nodi.
Dopo aver distribuito i tuoi 3 nodi, dovrai essere sicuro che ogni nodo possa parlare con il resto. Devi ssh in due nodi e raggiungere gli altri usando ping -c 4 EXAMPLE_IP
. Passa EXAMPLE_IP
agli IP effettivi dei tuoi nodi.
Qui puoi vedere un esempio di comunicazione riuscita tra due nodi.
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
In generale puoi usare il pacchetto MongoDB di Ubuntu, ma è meglio usare il repository ufficiale della comunità perché è sempre aggiornato. Questo repository contiene questi pacchetti:
mongod
demone (processo principale che gestisce le richieste di dati).mongos
demone (servizio di routing per distribuzioni condivise).mongo shell
interfaccia JavaScript.Procedere con l'installazione dei pacchetti.
Importa la chiave pubblica nel sistema di gestione dei pacchetti.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Creare il file di elenco per 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
Aggiorna il database del pacchetto.
sudo apt-get update
Installa il metapacchetto MongoDB.
sudo apt-get install -y mongodb-org
Avviare il servizio MongoDB.
sudo service mongod start
Ora puoi aprire il mongo shell
in qualsiasi sessione bash. Per fare questo, devi usare il mongo
comando. Sarai accolto da qualcosa di simile a questo.
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*
>
Non dimenticare di chiudere il servizio con sudo service mongod stop
, perché in seguito ricominceremo mongod
con alcuni parametri. Ripeti questo processo in tutti e 3 i nodi del set.
L'uso di un file di chiavi impone due concetti nell'amministrazione del set di repliche. Il primo è Internal Authentication
. Per impostazione predefinita, è possibile avviare una mongo shell
sessione senza utilizzare un utente e questa sessione avrà il pieno controllo del database, ma quando si utilizza un file di chiavi per l'autenticazione la mongo shell
sessione raggiunge uno stato chiamato localhost exception
. Questo stato consente solo di creare l'utente amministratore e il set di repliche. Il secondo concetto è Role-Based Access Control
, ovvero l'autorizzazione. Questo viene applicato per governare i livelli amministrativi nel set di repliche.
Il file di chiavi è la password da utilizzare nel set, questa password deve essere la stessa in tutti i membri del set. Per aumentare la sicurezza è importante utilizzare una chiave casuale con lo strumento di tua scelta.
Il contenuto deve contenere da 6 a 1064 caratteri. Inoltre è necessario impostare l' read only
autorizzazione per il file di chiavi.
chmod 400 PATH_OF_YOUR_KEYFILE
Ora copia il tuo file di chiavi su ogni membro impostato, utilizza una cartella coerente per riferimento futuro e non archiviarlo in un supporto rimovibile.
Utilizzare anche una cartella per il file a cui è mongod
possibile accedere.
In questo passaggio è necessario avviare il mongod daemon
membro in ogni set . Esistono due modi per avviare il mongod
processo: utilizzare un file di configurazione o utilizzare la riga di comando. Entrambi sono metodi abbastanza semplici, ma solo per semplicità, questo tutorial usa la versione da riga di comando.
Usa il nome che hai scelto prima in questo comando.
mongod --keyFile PATH_OF_YOUR_KEYFILE --replSet "YOUR_SET_NAME"
Per impostazione predefinita, mongod
non viene eseguito come demone. Dovrai utilizzare il --fork
parametro o usare il upstart
per eseguirlo completamente come demone. In questo tutorial non incoraggiamo l'esecuzione mongod
come demone in modo da poter vedere direttamente i log nel tuo terminale.
Nota: digitare con attenzione il nome del set di repliche perché una volta creato non è possibile modificarlo.
Nota: se si esegue mongod
come processo non daemon, sarà necessario aprire un'altra connessione ssh per continuare a lavorare.
È necessario utilizzare il mongo
comando per aprire il file mongo shell
. Questo può essere fatto in qualsiasi membro del set.
In questo momento siamo in uno stato chiamato localhost exception
. Quando si utilizza un file di chiavi per impostare il mongod
processo, si è obbligati a creare un amministratore di database prima di poter applicare le operazioni di lettura / scrittura, ma ci occuperemo più avanti.
Questa è una parte delicata, stiamo usando il comando rs.initiate()
all'interno del mongo shell
passaggio 4. prima di usare questo comando, esaminiamolo.
rs.initiate(
{
_id : <replicaSetName>,
members: [
{ _id : 0, host : "example1.net:27017" },
{ _id : 1, host : "example2.net:27017" },
{ _id : 2, host : "example3.net:27017" }
]
}
)
Il primo _id
campo è una stringa e deve corrispondere a --replSet
quello passato in precedenza mongod
. Inoltre, ogni valore di host
deve essere l'ip o il nome di dominio di ciascun membro del set di repliche. Non dimenticare di aggiungere la porta utilizzata dall'istanza mongo in ciascun membro.
Ora è il momento di eseguire il comando con i tuoi dati su di esso, questo attiverà un election
, quindi un primario verrà eletto automaticamente.
Qui dovresti notare che il cursore della shell è cambiato in YOUR_SET_NAME:PRIMARY>
o YOUR_SET_NAME:SECONDARY
. Ciò significa che la creazione di un set è stata un successo.
Per continuare a lavorare devi trovare primary
, se non ci sei, ovviamente. Utilizzare il rs.status()
comando per mostrare le informazioni del set di repliche e individuare il primary
. Stai cercando la proprietà "stateStr" : "PRIMARY"
.
Dopo aver individuato il primary
, immettere il mongo shell
ed eseguire il comando successivo utilizzando i dati.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOU_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
La admin = db.getSiblingDB("admin")
parte ci consente di scrivere admin
da un database diverso. Questo crea un alias chiamato admin
, in modo da poter eseguire i comandi utilizzandolo invece.
Se l'operazione ha esito positivo, riceverai una notifica che l'utente è stato aggiunto.
Successfully added user: {
"user" : "YOUR_USER",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
A questo punto, abbiamo solo un amministratore per tutti i server, ma avere un set di repliche ci obbliga ad avere un utente con il clusterAdmin
ruolo. Creeremo un altro utente con solo quel ruolo per separare le preoccupazioni.
Abbiamo raggiunto il limite di localhost exception
, motivo per cui dobbiamo modificare l'autenticazione per l'utente creato un passo prima.
È possibile modificare gli utenti all'interno mongo shell
di quanto segue.
db.getSiblingDB("admin").auth("YOUR_ADMIN", "YOUR_PASSWORD" )
Se non ti sei ancora connesso, mongo shell
usa questo comando.
mongo -u "YOUR_ADMIN" -p "YOUR_PASSWORD" --authenticationDatabase "admin"
Riceverai una notifica relativa alla modifica di un utente e puoi procedere con il passaggio successivo.
Il clusterAdmin
ruolo offre all'utente il pieno controllo del set di repliche. La creazione è semplice come la creazione dell'utente amministratore.
db.getSiblingDB("admin").createUser(
{
"user" : "YOUR_USER",
"pwd" : "YOUR_PASSWORD",
roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
}
)
Questa volta il ruolo viene cambiato inclusterAdmin
.
Al momento abbiamo 2 utenti amministratori: uno che ha il controllo totale sul server e un altro che ha accesso alle attività amministrative a livello di set di repliche. Tuttavia, ci manca un utente che abbia accesso a "utilizzare" un database, quindi creeremo quell'utente ora.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOUR_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "cars" } ]
}
)
Si noti che questa volta stiamo cambiando la db
parte, lì stiamo mettendo il database accessibile all'utente, in questo caso stiamo usando un database chiamato cars
.
Il database non è ancora stato creato. Per fare ciò, dovrai digitare alcuni comandi per crearlo implicitamente. Passa al cars
database.
use cars
Si otterrà una notifica: switched to db cars
.
Il database non è ancora stato creato, per farlo è necessario scrivere qualcosa su di esso. Stiamo usando il seguente esempio.
db.models.insert({ make: "Dodge", model: "Viper", year: 2010 })
Questa volta sarai avvisato con WriteResult({ "nInserted" : 1 })
.
Se lo desideri, puoi recuperare tutti gli oggetti nel database, con il find()
metodo:
db.models.find()
{ "_id" : ObjectId("59acd8b55334882863541ff4"), "make" : "Dodge", "model" : "Viper", "year" : 2010 }
Nota che _id
sarà diverso nel tuo output, ma gli altri dati dovrebbero essere gli stessi. Dato abbastanza tempo, questi dati verranno replicati negli altri membri.
La creazione di un set di repliche può essere inizialmente impegnativa perché ci sono molte informazioni da capire, ma una volta che hai l'idea alla base puoi distribuirla in un attimo, quindi non mollare se non riesci a coglierla per la prima volta. Tieni presente che il set di repliche è importante nell'amministrazione MongoDB perché apre la possibilità di aggiungere funzionalità avanzate come il bilanciamento del carico.
Usi un sistema diverso? Apache Cassandra è un sistema di gestione di database NoSQL gratuito e open source progettato per fornire scalabilità, alta
Introduzione MyCLI è un client da riga di comando per MySQL e MariaDB che ti consente di completare automaticamente e ti aiuta con la sintassi dei tuoi comandi SQL. MyCL
MongoDB non è sicuro per impostazione predefinita. Se stai installando MongoDB e lo avvii senza configurarlo per lautenticazione, avrai dei brutti momenti
Usi un sistema diverso? Introduzione ArangoDB è un database NoSQL open source con un modello di dati flessibile per documenti, grafici e valori-chiave. È
Redis è un archivio di strutture dati. È popolare tra i siti WordPress perché offre grandi prestazioni grazie al suo approccio ottimizzato alla memorizzazione nella cache.
MySQL è il software più popolare al mondo utilizzato per i database. Accertarsi di disporre di backup del database è molto importante. Questa pratica lo consente
Introduzione In questo articolo, spiega come eseguire il backup di più database MySQL o MariaDB che si trovano sullo stesso computer utilizzando uno script bash personalizzato
Usi un sistema diverso? Apache Cassandra è un sistema di gestione di database NoSQL gratuito e open source progettato per fornire scalabilità, alta
Laravel GitScrum o GitScrum è uno strumento di produttività open source progettato per aiutare i team di sviluppo a implementare la metodologia Scrum in modo simile a
Prerequisiti Un server Vultr con Arch Linux aggiornato (vedere questo articolo.) Accesso Sudo. I comandi che devono essere eseguiti come root sono preceduti da # e uno
MongoDB è un database NoSQL veloce e potente. Tuttavia, i repository Debian si aggiornano lentamente e spesso contengono versioni molto vecchie di pacchetti. Questa tutoria
In questo articolo, Ill ti mostra come installare MariaDB su OpenBSD 6 e configurarlo per essere accessibile a un server Web chroot (Apache o Nginx). Lo farai anche tu
Barnyard2 è un modo per archiviare ed elaborare gli output binari da Snort in un database MySQL. Prima di iniziare Si prega di notare che se non si ha russare
phpRedisAdmin è unapplicazione web che gestisce i database Redis con uninterfaccia utente grafica intuitiva. Questo tutorial spiegherà come installare
RockMongo è uno strumento di gestione MongoDB basato sul web simile allo strumento di gestione MySQL: phpMyAdmin. Questo tutorial coprirà il processo di installazione
Usando un sistema diverso? Introduzione ArangoDB è un database NoSQL open source con un modello di dati flessibile per documenti, grafici e valori-chiave. È
Redis è una soluzione di archiviazione dei dati chiave-valore, spesso definita come un database NoSQL. Può raggiungere velocità di lettura / scrittura molto elevate perché è un bu in memoria
MariaDB è un database open source gratuito ed è la sostituzione drop-in più utilizzata per MySQL. È realizzato dagli sviluppatori di MySQL e destinato a remai
Il backup è una parte importante della gestione dei database. Indipendentemente dal fatto che gestiate un sito aziendale, o semplicemente ospitate WordPress, è importante eseguire il backup
Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane
ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.
Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+
Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.
Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più
13 strumenti commerciali per l'estrazione dei dati dai Big Data
Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true
Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.
Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1
L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.