Mongodb 3.4配置搭建高可用叢集(2)
環境準備Centos6.5
三臺伺服器:
10.68.17.106、10.68.17.109、10.68.17.110
埠分配:
mongos:20000、config:21000、shard1:27001、shard2:27002、shard3:27003
分別為每臺機器建立mongos、config、shard1、shard2、shard3這些目錄,因為mongos不儲存資料,只需要建立日誌檔案目錄即可。
mkdir -p /usr/local/mongodb/mongos/log mkdir -p /usr/local/mongodb/config/data mkdir -p /usr/local/mongodb/config/log mkdir -p /usr/local/mongodb/shard1/data mkdir -p /usr/local/mongodb/shard1/log mkdir -p /usr/local/mongodb/shard2/data mkdir -p /usr/local/mongodb/shard2/log mkdir -p /usr/local/mongodb/shard3/data mkdir -p /usr/local/mongodb/shard3/log
1、config server配置伺服器
mongodb3.4以後版本要求配置伺服器也建立副本集,不然叢集搭建不成功。
新增配置檔案:
[[email protected] ~]# vim /usr/local/mongodb/conf/config.conf ## 配置檔案內容 pidfilepath = /usr/local/mongodb/config/log/configsrv.pid dbpath = /usr/local/mongodb/config/data logpath = /usr/local/mongodb/config/log/congigsrv.log logappend = true bind_ip = 0.0.0.0 port = 21000 fork = true #declare this is a config db of a cluster; configsvr = true #副本集名稱 replSet=configs #設定最大連線數 maxConns=20000
為三臺伺服器新增配置檔案後,分別啟動三臺伺服器的config server
[[email protected] ~]# mongod -f /usr/local/mongodb/conf/config.conf
登入任意一臺配置伺服器,初始化配置副本集
[[email protected] ~]# mongo --port 21000
其中,"_id":"configs"應與配置檔案中配置的replicaction.replSetName一致,"members"中的"host"為三個節點的ip和port。#config變數 config = { ... _id : "configs", ... members : [ ... {_id : 0, host : "10.68.17.106:21000" }, ... {_id : 1, host : "10.68.17.109:21000" }, ... {_id : 2, host : "10.68.17.110:21000" } ... ] ... } #初始化副本集 rs.initiate(config)
2、配置分片副本集(三臺機器)
設定第一個分片副本集
配置檔案
[[email protected] ~]# /usr/local/mongodb/conf/shard1.conf
#配置檔案內容
#——————————————–
pidfilepath = /usr/local/mongodb/shard1/log/shard1.pid
dbpath = /usr/local/mongodb/shard1/data
logpath = /usr/local/mongodb/shard1/log/shard1.log
logappend = true
bind_ip = 0.0.0.0
port = 27001
fork = true
#開啟web監控
httpinterface=true
rest=true
#副本集名稱
replSet=shard1
#declare this is a shard db of a cluster;
shardsvr = true
#設定最大連線數
maxConns=20000
啟動三臺伺服器的shard1 server
[[email protected] ~]# mongod -f /usr/local/mongodb/conf/shard1.conf
登入任意一臺伺服器,初始化副本集
[[email protected] ~]# mongo --port 27001
#使用admin資料庫
use admin
#定義副本集配置,第三個節點的 "arbiterOnly":true 代表其為仲裁節點。
config = {
... _id : "shard1",
... members : [
... {_id : 0, host : "10.68.17.106:27001" },
... {_id : 1, host : "10.68.17.109:27001" },
... {_id : 2, host : "10.68.17.110:27001" , arbiterOnly: true }
... ]
... }
#初始化副本集配置
rs.initiate(config);
設定第二個分片副本集
配置檔案
[[email protected] ~]# vim /usr/local/mongodb/conf/shard2.conf
#配置檔案內容
#——————————————–
pidfilepath = /usr/local/mongodb/shard2/log/shard2.pid
dbpath = /usr/local/mongodb/shard2/data
logpath = /usr/local/mongodb/shard2/log/shard2.log
logappend = true
bind_ip = 0.0.0.0
port = 27002
fork = true
#開啟web監控
httpinterface=true
rest=true
#副本集名稱
replSet=shard2
#declare this is a shard db of a cluster;
shardsvr = true
#設定最大連線數
maxConns=20000
啟動三臺伺服器的shard2 server
[[email protected] ~]# mongod -f /usr/local/mongodb/conf/shard2.conf
登入任意一臺伺服器,初始化副本集
[[email protected] ~]# mongo --port 27002
#使用admin資料庫
use admin
#定義副本集配置
config = {
... _id : "shard2",
... members : [
... {_id : 0, host : "10.68.17.106:27002" , arbiterOnly: true },
... {_id : 1, host : "10.68.17.109:27002" },
... {_id : 2, host : "10.68.17.110:27002" }
... ]
... }
#初始化副本集配置
rs.initiate(config);
設定第三個分片副本集
配置檔案
[[email protected] ~]# vim /usr/local/mongodb/conf/shard3.conf
#配置檔案內容
#——————————————–
pidfilepath = /usr/local/mongodb/shard3/log/shard3.pid
dbpath = /usr/local/mongodb/shard3/data
logpath = /usr/local/mongodb/shard3/log/shard3.log
logappend = true
bind_ip = 0.0.0.0
port = 27003
fork = true
#開啟web監控
httpinterface=true
rest=true
#副本集名稱
replSet=shard3
#declare this is a shard db of a cluster;
shardsvr = true
#設定最大連線數
maxConns=20000
啟動三臺伺服器的shard3 server
[[email protected] ~]# mongod -f /usr/local/mongodb/conf/shard3.conf
登入任意一臺伺服器,初始化副本集[[email protected] ~]# mongo --port 27003
#使用admin資料庫
use admin
#定義副本集配置
config = {
... _id : "shard3",
... members : [
... {_id : 0, host : "10.68.17.106:27003" },
... {_id : 1, host : "10.68.17.109:27003" , arbiterOnly: true},
... {_id : 2, host : "10.68.17.110:27003" }
... ]
... }
#初始化副本集配置
rs.initiate(config);
3、配置路由伺服器mongos(三臺機器)
先啟動配置伺服器和分片伺服器,後啟動路由例項。
[[email protected] ~]# vim /usr/local/mongodb/conf/mongos.conf
#內容
pidfilepath = /usr/local/mongodb/mongos/log/mongos.pid
logpath = /usr/local/mongodb/mongos/log/mongos.log
logappend = true
bind_ip = 0.0.0.0
port = 20000
fork = true
#監聽的配置伺服器,只能有1個或者3個 configs為配置伺服器的副本集名字
configdb = configs/10.68.17.106:21000,10.68.17.109:21000,10.68.17.110:21000
#設定最大連線數
maxConns=20000
啟動三臺伺服器的mongos server
[[email protected] ~]# mongos -f /usr/local/mongodb/conf/mongos.conf
4、啟用分片
目前搭建了mongodb配置伺服器、路由伺服器、各個分片伺服器,不過應用程式連線到mongos路由伺服器並不能使用分片機制,還需要在程式裡設定分片配置,讓分片生效。
登入任意一臺mongos
[[email protected] ~]# mongo --port 20000
#使用admin資料庫
user admin
#串聯路由伺服器與分配副本集
sh.addShard("shard1/10.68.17.106:27001,10.68.17.109:27001,10.68.17.110:27001")
sh.addShard("shard2/10.68.17.106:27002,10.68.17.109:27002,10.68.17.110:27002")
sh.addShard("shard3/10.68.17.106:27003,10.68.17.109:27003,10.68.17.110:27003")
#檢視叢集狀態
sh.status()
目前配置服務、路由服務、分片服務、副本集服務都已經串聯起來了,但是我們的目的是希望插入資料,資料能夠自動分片。連線在mongos上,準備讓指定的資料庫、指定的集合分片生效。
#指定testdb分片生效
db.runCommand( { enablesharding :"testdb"});
#指定資料庫裡需要分片的集合和片鍵
db.runCommand( { shardcollection : "testdb.table1",key : {id: 1} } )
相關推薦
Mongodb 3.4配置搭建高可用叢集(2)
環境準備Centos6.5 三臺伺服器: 10.68.17.106、10.68.17.109、10.68.17.110 埠分配: mongos:20000、config:21000、shard1:27001、shard2:27002、shard3:27003 分別為每臺機器
手動搭建Kubernetes1.8高可用叢集(5)Node
一、準備 2、Node2,Node3上搭建Node,以下所有操作都在Node3上進行。Node2只需要修改kubelet配置就可以了 3、建立目錄,並分發證書 /etc/kubernetes/manifests 屬主kube 屬組kube-cert 許可權0
手動搭建Kubernetes1.8高可用叢集(6)calico
一、準備 3、Node 3、建立目錄 /etc/cni/net.d/ /etc/calico/certs /opt/cni/bin/ 許可權0755 屬主kube 二、配置所有節點 1、連結etcd證書 ln /etc/ssl/etcd/ssl/c
手動搭建Kubernetes1.8高可用叢集(7)dnsmasq
接著上一篇 一、準備 andyshinn/dnsmasq:2.72 gcr.io/google_containers/cluster-proportional-autoscaler-amd64:1.1.1 2、建立資料夾 /etc/dnsmasq.d /etc/d
使用3臺虛擬機器搭建Hadoop HA叢集(2)
系列部落格目錄連結:Hadoop權威指南學習筆記:總章 基礎環境搭建:使用3臺虛擬機器搭建Hadoop HA叢集(1) HA環境搭建:使用3臺虛擬機器搭建Hadoop HA叢集(2) 本部分包含以下基本分內容 安裝部署zookeeper
【架構】Heartbeat高可用服務(2)
agents 可用 分享 ont .com war 集群 需求 spa Heartbeat高可用服務 【13】Heartbeat發展情況及分支軟件介紹 有關Heartbeat分3個分支的說明 自2.1.4版本後,Linux-HA將Heartbeat分包
SQL Server中的高可用性(2)----檔案與檔案組
在談到SQL Server的高可用性之前,我們首先要談一談單例項的高可用性。在單例項的高可用性中,不可忽略的就是檔案和檔案組的高可用性。SQL Server允許在某些檔案損壞或離線的情況下,允許資料庫依然保持部分線上,從而保證了高可用性。 檔案和檔案組 有關檔案和檔案組的基本概念,有很
手動搭建Kubernetes1.8高可用叢集(4)Master
一、準備 2、Node1,Node2上搭建Master,以下所有操作都在Node1和2上進行 3、建立目錄,並分發證書 /etc/kubernetes/manifests 屬主kube 屬組kube-cert 許可權0700 /etc/kubernetes/
Mongodb3.4.7搭建高可用集群(二)
cto logs ica sta ready 部署 ... ima exiting 部署Mongodb高可用集群 準備 按照官方說明,至少需要3個config server,2個mongos,2個shard,每個shard至少2個副本,就是4個shard,共需要9個Mong
4--SpringCloud搭建高可用的服務註冊中心 1--SpringCloud的服務註冊與發現Eureka 1--SpringCloud的服務註冊與發現Eureka 1--SpringCloud的服務註冊與發現Eureka
我們已經介紹了1--SpringCloud的服務註冊與發現Eureka,其中,主要演示瞭如何構建和啟動服務註冊中心Eureka Server,以及如何將服務註冊到Eureka Server中,但是在之前的示例中,這個服務註冊中心是單點的,顯然這並不適合應用於線上生產環境,那麼下面在前文的基礎上,我們來看看
配置MySQL高可用叢集MHA
配置MySQL高可用叢集+++++++++++++++++++主機角色 :客戶端 client50資料庫伺服器 mysql51 到 mysql55管理主機 mgm56VIP地址 192.168.4.100拓撲結構: client50 | mysql51主 |
4--SpringCloud搭建高可用的服務註冊中心
我們已經介紹了1--SpringCloud的服務註冊與發現Eureka,其中,主要演示瞭如何構建和啟動服務註冊中心Eureka Server,以及如何將服務註冊到Eureka Server中,但是在之前的示例中,這個服務註冊中心是單點的,顯然這並不適合應用於線上生產環境,那麼下面在前文的基礎上,我們來看看
CentOS 7下搭建高可用叢集
本文以兩臺機器實現雙集熱備高可用叢集,主機名node1的IP為192.168.122.168 ,主機名node2的IP為192.168.122.169 。 一、安裝叢集軟體 必須軟體pcs,pacemaker,corosync,fence-agents-all,如果需要配置相關服務,也要安裝對
mongodb 3.4 配置sharding分片
摘抄mongodb官網: Sharding is a method for distributing data across multiplemachines. MongoDB uses sharding to support deployments with very
pacemaker + corosync 搭建高可用叢集
一、什麼是高可用叢集 高可用叢集就是當某一個節點或伺服器發生故障時,另一個節點能夠自動且立即向外提供服務,即將有故障節點上的資源轉移到另一個節點上去,這樣另一個節點有了資源既可以向外提供服務。高可用叢集是用於單個節點發生故障時,能夠自動將資源、服務進行切換,
keepalived詳解 及 keepalived配置LVS高可用叢集
keepalived詳解 及 keepalived配置LVS高可用負載均衡叢集 在前面《INUX叢集--均衡負載 LVS(一) LVS認知》等系列文章中我們全面認識了LVS,並手動進行了LVS的應用配置,我們知道所有使用者client端的請求都會經過LVS的
hadoop2.7.5搭建高可用叢集
<!-- 指定副本數 --><property><name>dfs.replication</name><value>2</value></property><!-- 配置namenode和datanode的工作目錄-資
使用keepalived搭建高可用叢集
開發十年,就只剩下這套架構體系了! >>>
使用3臺虛擬機器搭建Hadoop HA叢集(1)
系列部落格目錄連結:Hadoop權威指南學習筆記:總章 基礎環境搭建:使用3臺虛擬機器搭建Hadoop HA叢集(1) HA環境搭建:使用3臺虛擬機器搭建Hadoop HA叢集(2) 工欲善其事,必先利其器,要學好大資料,就必須首先學會自己動手
從零搭建生產Hadoop叢集(七)——關鍵伺服器雙網絡卡配置
一、概述 Hadoop叢集中,有許多伺服器部署著關鍵例項,如NameNode、ResourceManager、Zookeeper等,這些服務的穩定執行對叢集健康具有重要意義。雖然這些服務基本上都會做多例項高可用部署,但是若連線的是同個交換機,萬一交換機發生故障