Como instalar o Apache Cassandra 3.11.x no CentOS 7
Usando um sistema diferente? O Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL gratuito e de código aberto, projetado para fornecer escalabilidade, alta
Desde sua concepção, em 2009, o MongoDB lidera o setor NoSQL. Um dos principais conceitos do MongoDB é o conjunto de réplicas; portanto, antes de trabalhar com ele, primeiro vamos revisar o conceito.
O modelo mais simples de comunicação usado na replicação de bancos de dados é a arquitetura Master-Slave. Como o nome sugere, este modelo possui 2 funções espalhadas em um mestre único e em muitos escravos, o papel do mestre é processar as operações de leitura e gravação realizadas pelos clientes e os escravos são tratados como uma réplica do mestre.
A vantagem mais importante desse modelo é que o desempenho do mestre não é comprometido pelas operações de backup, as operações de backup são feitas de maneira assíncrona e isso pode se tornar um problema sério quando um nó mestre falha. Os nós escravos são apenas de leitura e precisam ser promovidos manualmente para o nó mestre, portanto, neste momento, há a possibilidade de perda de dados.
Uma opção para resolver o problema de disponibilidade é ter mais de um mestre na arquitetura, mas isso pode levar a outro problema na consistência dos dados entre essas instâncias e na complexidade adicional da configuração.
Agora, considerando o contexto, podemos apresentar a tecnologia Replica Set do MongoDB. Conjunto de réplicas é o nome da arquitetura Master-Slave que possui failover automático; portanto, no momento em que um primary
nó mestre (que agora é chamado ) falhar em funcionar adequadamente, um election
gatilho será ativado e um novo nó primário será eleito dos escravos restantes ( referido agora como secondaries
).
O nó primário é o único que executa operações de gravação; por padrão, as operações de leitura também são tratadas pelo primário, mas esse comportamento pode ser alterado posteriormente.
As operações são registradas no oplog
(log de operações), e os nós secundários atualizam seu conteúdo de forma assíncrona, com base no conteúdo dooplog
Nota: oplog
é uma coleção limitada, isso significa que a coleção tem um limite, com local.oplog.rs
você pode verificar o conteúdo dessa coleção dentro de um shell mongo em qualquer membro do conjunto.
Além de fazer o backup adequado do banco de dados, um nó secundário possui as seguintes funções:
Graças a essas características, podemos ter diferentes tipos de nós secundários:
primary
e não podem desencadear uma eleição, ainda assim podem votar nas eleições, ter uma réplica completa e aceitar operações de leitura. Isso pode ser útil na implantação de vários centros de dados.Priority 0
membros, mas, além disso, não podem processar operações de leitura. Eles podem votar se necessário. As tarefas preferidas para esses membros são relatórios e backups.priority 0
nó e é recomendável que ele também seja um hidden
membro.Antes de implantar uma infraestrutura, é importante projetá-la e há pontos a serem considerados nesse design.
Lembre-se de que o número mínimo de elementos para criar um conjunto de réplicas é 3. Você pode misturar os três tipos de nós com no mínimo um nó primário e um secundário.
Neste guia, estamos implantando 3 membros, um primário e dois secundários padrão.
Nota: Recomenda-se ter um número máximo de 7 membros votantes com uma mistura de árbitros e membros secundários.
O nome é apenas para referência, mas você o está usando na configuração do conjunto. Lembre-se de que você pode ter mais de uma réplica configurada em seu ambiente de produção; portanto, não negligencie o nome do seu conjunto.
Este tutorial incentiva o usuário a selecionar o nome do conjunto.
Este tutorial sugere a implantação no mesmo datacenter para evitar problemas de comunicação.
Nota: No caso de implantar em diferentes data centers, é recomendável envolver seus nós com uma VPN
Inicie 3 nós do Ubuntu 16.04 x64; na mesma região do portal do cliente, se possível. Não esqueça de nomeá-los de acordo com o tipo de projeto com o qual você está lidando e certifique-se de ter o mesmo tamanho de servidor em todos esses nós.
Depois de implantar seus 3 nós, você precisará garantir que todos os nós possam conversar com o resto. Você precisa ssh em dois nós e alcançar os outros usando ping -c 4 EXAMPLE_IP
. Mude EXAMPLE_IP
para os IPs reais dos seus nós.
Aqui você pode ver um exemplo de comunicação bem-sucedida entre dois nós.
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
Em geral, você pode usar o pacote MongoDB do Ubuntu, mas é melhor usar o repositório oficial da comunidade, pois ele está sempre atualizado. Este repositório contém estes pacotes:
mongod
daemon (processo primário que lida com solicitações de dados).mongos
daemon (serviço de roteamento para implantações compartilhadas).mongo shell
interface JavaScript.Prossiga com a instalação dos pacotes.
Importe a chave pública para o sistema de gerenciamento de pacotes.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Crie o arquivo de lista para o 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
Atualize o banco de dados do pacote.
sudo apt-get update
Instale o metapacote do MongoDB.
sudo apt-get install -y mongodb-org
Inicie o serviço MongoDB.
sudo service mongod start
Agora você pode abrir a mongo shell
sessão em qualquer bash. Para fazer isso, você precisa usar o mongo
comando Você será recebido por algo semelhante a isso.
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ão se esqueça de desligar o serviço sudo service mongod stop
, pois mais tarde iniciaremos mongod
novamente com alguns parâmetros. Repita esse processo em todos os 3 nós do conjunto.
O uso de um arquivo de chave força dois conceitos na administração do Conjunto de Réplicas. O primeiro é Internal Authentication
. Por padrão, você pode iniciar uma mongo shell
sessão sem usar um usuário e esta sessão terá controle total do banco de dados, mas quando você usa um arquivo de chave para autenticação, sua mongo shell
sessão atinge um estado chamado localhost exception
. Esse estado permite criar apenas o usuário administrador e o conjunto de réplicas. O segundo conceito é Role-Based Access Control
, ou em outras palavras, autorização. Isso é imposto para controlar os níveis administrativos no conjunto de réplicas.
O arquivo de chave é a senha a ser usada no conjunto; essa senha deve ser a mesma em todos os membros do conjunto. Para aumentar a segurança, é importante usar uma chave aleatória com a ferramenta de sua escolha.
O conteúdo deve ter entre 6 e 1064 caracteres. Além disso, você deve definir a read only
permissão para o arquivo de chave.
chmod 400 PATH_OF_YOUR_KEYFILE
Agora copie seu arquivo-chave para cada membro do conjunto, use uma pasta consistente para referência futura e não armazene-a em uma mídia removível.
Também use uma pasta para o arquivo que mongod
pode acessar.
Nesta etapa, precisamos iniciar o mongod daemon
em cada membro do conjunto . Existem duas maneiras de iniciar o mongod
processo: usando um arquivo de configuração ou usando a linha de comando. Ambos são métodos bastante fáceis, mas, para simplificar, este tutorial usa a versão da linha de comandos.
Use o nome que você escolheu anteriormente neste comando.
mongod --keyFile PATH_OF_YOUR_KEYFILE --replSet "YOUR_SET_NAME"
Por padrão, mongod
não é executado como um daemon. Você precisará usar o --fork
parâmetro ou o upstart
para executá-lo completamente como um daemon. Neste tutorial, não recomendamos a execução mongod
como um daemon, para que você possa ver os logs diretamente no seu terminal.
Nota: Digite com cuidado o nome do conjunto de réplicas porque, uma vez criado, você não poderá alterá-lo.
Nota: Se você executar mongod
como um processo não daemon, será necessário abrir outra conexão ssh para continuar trabalhando.
Você deve usar o mongo
comando para abrir o arquivo mongo shell
. Isso pode ser feito em qualquer membro do conjunto.
Neste momento, estamos em um estado chamado localhost exception
. Quando um arquivo de chave é usado para configurar o mongod
processo, você é obrigado a criar um administrador de banco de dados antes de poder aplicar operações de leitura e gravação, mas entraremos nisso mais tarde.
Esta é uma parte delicada, estamos usando o comando rs.initiate()
dentro mongo shell
da Etapa 4. Antes de usar este comando, vamos revisá-lo.
rs.initiate(
{
_id : <replicaSetName>,
members: [
{ _id : 0, host : "example1.net:27017" },
{ _id : 1, host : "example2.net:27017" },
{ _id : 2, host : "example3.net:27017" }
]
}
)
O primeiro _id
campo é uma sequência e deve corresponder ao --replSet
que foi passado antes para mongod
. Além disso, cada valor de host
deve ser o ip ou o nome de domínio de cada membro do conjunto de réplicas. Não esqueça de anexar a porta que a instância do mongo está usando em cada membro.
Agora é hora de executar o comando com seus dados, isso acionará um e election
, em seguida, um primário será eleito automaticamente.
Aqui você deve observar que o cursor do shell mudou para YOUR_SET_NAME:PRIMARY>
ou YOUR_SET_NAME:SECONDARY
. Isso significa que a criação de um conjunto foi um sucesso.
Para continuar trabalhando, você precisa encontrar o primary
, se não estiver nele, é claro. Use o rs.status()
comando para mostrar as informações do conjunto de réplicas e localize o primary
. Você está procurando a propriedade "stateStr" : "PRIMARY"
.
Depois de localizar o primary
, digite mongo shell
e execute o próximo comando usando seus dados.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOU_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
A admin = db.getSiblingDB("admin")
parte nos permite escrever em admin
um banco de dados diferente. Isso cria um alias chamado admin
, para que possamos executar comandos usando-o.
Se a operação for bem-sucedida, você receberá uma notificação de que o usuário foi adicionado.
Successfully added user: {
"user" : "YOUR_USER",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Neste ponto, só temos um administrador para todos os servidores, mas ter uma réplica definida nos obriga a ter um usuário com a clusterAdmin
função. Criaremos outro usuário com apenas essa função para separar preocupações.
Atingimos o limite de localhost exception
, e é por isso que precisamos alterar a autenticação para o usuário criado uma etapa antes.
Você pode alterar os usuários dentro do mongo shell
com o seguinte.
db.getSiblingDB("admin").auth("YOUR_ADMIN", "YOUR_PASSWORD" )
Se você ainda não se conectou ao mongo shell
use este comando.
mongo -u "YOUR_ADMIN" -p "YOUR_PASSWORD" --authenticationDatabase "admin"
Você será notificado sobre a alteração de um usuário e poderá seguir o próximo passo.
A clusterAdmin
função fornece ao usuário controle total do conjunto de réplicas. Criá-lo é tão fácil quanto criar o usuário administrador.
db.getSiblingDB("admin").createUser(
{
"user" : "YOUR_USER",
"pwd" : "YOUR_PASSWORD",
roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
}
)
Observe que desta vez a função é alterada paraclusterAdmin
.
Neste momento, temos 2 usuários administrativos: um com controle total sobre o servidor e outro com acesso a tarefas administrativas no nível do conjunto de réplicas. No entanto, não temos um usuário que tenha acesso para "usar" um banco de dados. Portanto, criaremos esse usuário agora.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOUR_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "cars" } ]
}
)
Observe que desta vez estamos alterando a db
parte, lá estamos colocando o banco de dados acessível ao usuário, neste caso, estamos usando um banco de dados chamado cars
.
O banco de dados ainda não foi criado. Para fazer isso, você precisará digitar alguns comandos para criá-lo implicitamente. Alterne para o cars
banco de dados.
use cars
Você receberá uma notificação: switched to db cars
.
O banco de dados ainda não foi criado; para isso, você precisa escrever algo nele. Estamos usando o exemplo a seguir.
db.models.insert({ make: "Dodge", model: "Viper", year: 2010 })
Desta vez, você será notificado com WriteResult({ "nInserted" : 1 })
.
Se desejar, você pode recuperar todos os objetos no banco de dados, com o find()
método:
db.models.find()
{ "_id" : ObjectId("59acd8b55334882863541ff4"), "make" : "Dodge", "model" : "Viper", "year" : 2010 }
Observe que _id
a saída será diferente, mas os outros dados devem ser os mesmos. Com tempo suficiente, esses dados serão replicados para os outros membros.
A criação de um conjunto de réplicas pode ser desafiadora a princípio, porque há muitas informações para entender, mas depois que você tiver a ideia por trás disso, poderá implantá-la rapidamente, portanto, não desista se não puder entendê-la pela primeira vez. Lembre-se de que o conjunto de réplicas é importante na administração do MongoDB, pois abre a possibilidade de adicionar recursos avançados, como o balanceamento de carga.
Usando um sistema diferente? O Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL gratuito e de código aberto, projetado para fornecer escalabilidade, alta
Introdução O MyCLI é um cliente de linha de comando para MySQL e MariaDB que permite concluir automaticamente e ajuda na sintaxe de seus comandos SQL. MyCL
O MongoDB não é seguro por padrão. Se você estiver instalando o MongoDB e iniciando-o sem configurá-lo para autenticação, terá um mau momento
O OrientDB é um DBM NoSQL de código aberto de última geração e com vários modelos. Com suporte para vários modelos de dados, o OrientDB pode fornecer mais funcionalidade e flexibilidade em
Usando um sistema diferente? Introdução O ArangoDB é um banco de dados NoSQL de código aberto com um modelo de dados flexível para documentos, gráficos e valores-chave. Isto é
Redis é um armazenamento de estrutura de dados. É popular nos sites WordPress, pois oferece um grande aumento de desempenho devido à sua abordagem otimizada no cache.
O MySQL é o software mais popular do mundo usado para bancos de dados. É muito importante garantir que você tenha backups do seu banco de dados. Essa prática permite
Introdução Neste artigo, passo a passo sobre como fazer backup de vários bancos de dados MySQL ou MariaDB que ficam na mesma máquina usando um script bash personalizado
Usando um sistema diferente? O Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL gratuito e de código aberto, projetado para fornecer escalabilidade, alta
Pré-requisitos Um servidor Vultr executando o Arch Linux atualizado (consulte este artigo) Acesso ao Sudo: os comandos necessários para serem executados como raiz são prefixados por # e um
O Laravel GitScrum, ou GitScrum, é uma ferramenta de produtividade de código aberto projetada para ajudar as equipes de desenvolvimento a implementar a metodologia Scrum de maneira semelhante a
Pré-requisitos Um servidor Vultr executando o Arch Linux atualizado (consulte este artigo.) Acesso ao Sudo. Os comandos que precisam ser executados como raiz são prefixados por # e um
Pré-requisitos Um servidor Vultr executando o Arch Linux atualizado (consulte este artigo.) Acesso ao Sudo: os comandos necessários para serem executados como raiz são prefixados por # e um
O MongoDB é um banco de dados NoSQL rápido e poderoso. No entanto, os repositórios Debian são atualizados lentamente e geralmente contêm versões muito antigas dos pacotes. Esta tutoria
Barnyard2 é uma maneira de armazenar e processar as saídas binárias do Snort em um banco de dados MySQL. Antes de começar Por favor, note que se você não tem ronco
O RockMongo é uma ferramenta de gerenciamento do MongoDB baseada na Web, semelhante à ferramenta de gerenciamento do MySQL: phpMyAdmin. Este tutorial abordará o processo de instalação
Neste artigo, mostrarei como instalar o MariaDB no OpenBSD 6 e configurá-lo para ser acessível a um servidor da web com chroot (Apache ou Nginx). Você também
Usando um sistema diferente? Introdução O ArangoDB é um banco de dados NoSQL de código aberto com um modelo de dados flexível para documentos, gráficos e valores-chave. Isto é
Redis é uma solução de armazenamento de dados de valor-chave, geralmente chamada de banco de dados NoSQL. Ele pode atingir velocidades de leitura / gravação muito altas porque é um recurso de memória
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.
O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+
Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.
Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais
13 Ferramentas de Extração de Dados Comerciais de Big Data
Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true
À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.
Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1
A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA na área da saúde ainda está crescendo dia a dia.