【編者按】傳統的關系數據庫具有不錯的性能及穩定性,同時,久經歷史考驗,許多優秀的數據庫沉淀了下來,比如MySQL。然而隨著數據體積的爆發性增長,數據類型的增多,許多傳統關系數據庫擴展難的特點也爆發了出來,NoSQL數據庫也應運而生。然而區別于以往的使用方法,許多NoSQL都有著自己的限制,從而也導致了入門難的問題。這里我們為大家分享上海創行科技技術總監嚴瀾的博文――如何搭建高效的MongoDB集群。
CSDN推薦:歡迎免費訂閱《Hadoop與大數據周刊》獲取更多Hadoop技術文獻、大數據技術分析、企業實戰經驗,生態圈發展趨勢。
以下為原文
在大數據的時代,傳統的關系型數據庫要能更高的服務必須要解決高并發讀寫、海量數據高效存儲、高可擴展性和高可用性這些難題。不過就是因為這些問題Nosql誕生了。
NOSQL有這些優勢:
在nosql數據庫里,大部分的查詢都是鍵值對(key、value)的方式。MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中最像關系數據庫的。支持類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。所以這個非常方便,我們可以用sql操作MongoDB,從關系型數據庫遷移過來,開發人員學習成本會大大減少。如果再對底層的sql API做一層封裝,開發基本可以感覺不到mongodb和關系型數據庫的區別。同樣MongoDB也是號稱自己能夠快速搭建一個高可用可擴展的的分布式集群,網上有很多搭建的文章,在我們搭建的時候還需要查找修改很多東西,所以把自己實戰的步驟記錄下來以備忘。我們看看如何一步一步搭建這個東東。
一、mongodb單實例。這種配置只適合簡易開發時使用,生產使用不行,因為單節點掛掉整個數據業務全掛,如下圖。
雖然不能生產使用,但這個模式可以快速搭建啟動,并且能夠用mongodb的命令操作數據庫。下面列出在linux下安裝單節點mongodb的步驟
1. 建立mongodb測試文件夾
#存放整個mongodb文件 mkdir -p /data/mongodbtest/single #存放mongodb數據文件 mkdir -p /data/mongodbtest/single/data #進入mongodb文件夾 cd /data/mongodbtest/single2. 下載mongodb的安裝程序包
wget <a >http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.6.tgz</a> #解壓下載的壓縮包 tar xvzf mongodb-linux-x86_64-2.4.6.tgz #進入mongodb程序執行文件夾 cd mongodb-linux-x86_64-2.4.6/bin/3. 啟動單實例mongodb
mongod --dbpath /data/mongodbtest/single/data輸出日志如下,成功!
[initandlisten] db version v2.4.6
……..
[initandlisten] waiting for connections on port 27017
[websvr] admin web console waiting for connections on port 28017
mongodb默認自帶提供了web訪問接口,通過 IP + 端口的形式可以訪問。
http://192.168.0.1:28017/
二、主從模式。使用mysql數據庫時大家廣泛用到,采用雙機備份后主節點掛掉了后從節點可以接替主機繼續服務。所以這種模式比單節點的高可用性要好很多。
下面看一下怎么一步步搭建一個mongodb的主從復制節點:
1. 準備兩臺機器 192.168.0.1 和 192.168.0.2。 192.168.0.1 當作主節點, 192.168.0.2作為從節點。
2. 分別下載mongodb安裝程序包。在192.168.0.1上建立文件夾 /data/mongodbtest/master,192.168.0.2建立文件夾/data/mongodbtest/slave。
3. 在192.168.0.1啟動mongodb主節點程序。注意后面的這個 “