MongoDB windows32 部署分片數據集

如果一個數據集很大,很難在一個服務器上放下,那麼此時MongoDB的分片技術就派上用場了。

MongoDB創建分片的流程大致如下:

1、創建N(N>=2)個Mongo服務實例作爲片節點。

2、創建configsrv服務實例,用來維護meta信息。

3、啓動mongos作爲路由服務器。

4、設定好數據的分片規則。



1、首先,我們創建2個Mongodb服務實例,作爲片節點。

    用管理員命令打開cmd,然後輸入下面的命令。

    Port:27017

    

    Port:27018

    

2、 創建配置節點服務器:port 27020, 需要在參數中指定 configsvr選項。

    

3、啓動Mongos服務,需指定配置節點服務器地址(configdb選項)


4、進入port:30000的mongo中

    sh.status():查看分片狀態。

    sh.addShard('本機IP:27017'):添加分片節點

    sh.addShard('本機IP:27018'):添加分片節點

    可以看到


    sh.enableSharding('庫'):設定某個庫是分片的。

    sh.shardCollection('集合全名', 分片字段):指定以某個集合中的特定分片字段來分片。


    分片是按照chunsize大小進行的,默認的chunksize大小爲80M,我們可以通過config數據庫中的settings集合來修改。如下

      我們設置chunksize爲1M.

    分片的過程主要爲如果某個片節點的chunk比另一節點多3個及以上則進行移動重新分配。此過程增加了大量的IO開銷。爲此,我們可以預先定義好分片的規則。如下圖,我們在shop庫中的user表上用userid定義分片。定義40個chunk,每1000行數據爲一個chunk.


此時我們通過sh.status(),可以看到每個片節點上的chunk數瞬間實現了均衡。


好了,到此結束。若有任何問題,可以在評論區留言。謝謝大家。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章