在分析或者參與一個開源項目之前,了解項目構建的目的是有必要的。
既然SequoiaDB是NoSQL數據庫產品,則必然存在於傳統關系型數據庫相同的功能點:數據的增、刪、改和查詢(CRUD)。
先了解怎么用,再在會用的基礎上,進一步分析其實現。
在上一篇中已經列出的安裝環境,以及SequoiaDB的下載地址。
具備以上條件之后,然后咱就行動吧。
本篇文章的內容是安裝和部署一個集群環境(也可以是獨立數據節點的環境,看個人的喜好了。獨立模式的部署可以去SequoiaDB官網的信息中心獲取)
進入終端,切入到存放SequoiaDB的目錄,我的目錄是home(~)目錄。
SequoiaDB的安裝包下載下來,是一個tar.gz的壓縮包,需要先解壓:
tar -zxvf sequoiadb-1.10-linux_x86_64-installer.tar.gz
該命令會把壓縮包解壓到當前目錄。
執行解壓出來的run包:
sudo ./sequoiadb-1.10-linux_x86_64-installer.run
此shell命令會執行SequoiaDB的安裝。如果是桌面環境,默認會以圖形向導的方式安裝,如果需要用字符安裝向導,可以用下面的命令來執行安裝:
sudo ./sequoiadb-1.10-linux_x86_64-installer.run --mode text --SMS false
我采用的是字符向導安裝,依次會經過
- 語言選擇,有 English 和 中文 供選擇,我選擇是English;
- 用戶許可協議聲明,如有疑問開源選擇2,查看協議的具體內容;
- 確認許可,選擇 y;
- 安裝目錄,默認是 /opt/sequoiadb;(不包括“;”)
- 創建數據庫管理員賬戶:用戶名,默認是sdbadmin;密碼,默認為sdbadmin,如果你需要自己設定數據庫管理員用戶名和密碼,可以在對應的輸入提示處輸入;
- 集群管理服務端口,默認是11790;
- 開機自啟動,我選擇的是 Y,確認開機自啟動;
- OM Server安裝等確認,我選擇的是 y,確認安裝;
最后就是繼續安裝確認,必須選擇 Y哈,確認之后會出現一下字符:
Please wait while Setup installs SequoiaDB Server on your computer. Installing 0% ______________ 50% ______________ 100% ###########################
此時耐心等待其安裝即可,當安裝完成,會自動切入Shell輸入狀態。
再次確認一下:安裝過程中,安裝程序會創建一個數據庫管理員的系統用戶,用戶數據庫的管理和部署。
到此處,數據庫正確安裝了 :)
安裝完成后,先檢查數據庫服務狀態,在shell中執行 service sdbcm status
正確情況下,應該出現的是 sdbcmd進程號,和 sdbcm is running. 的提示:
tynia@Milky:~$ service sdbcm status 4991 sdbcm is running.
如果sdbcm服務並沒有啟動,可以手動執行 service sdbcm start 來啟動sdbcm服務。注:我的機器hostname是Milky,當前user是tynia。
如果仍然失敗,請檢查一下安裝過程是否出錯。
sdbcm服務狀態正確的話,就可以繼續部署了。
我將在自己機器上部署一個集群環境:
一個編目節點組,也稱之為 catalog節點組,有兩個節點,每個節點稱為 catalog節點;
一個數據節點組,稱之為 data節點組,有三個節點,每個節點稱為 data節點;
一個協調節點組,稱之為coord節點組,有一個節點,稱為coord節點;
我只有一台機器,因此部署的是一個偽集群環境:所有的數據節點都在一台機器上,無法保證數據安全。如果用於生產系統,最好的做法是把集群中的節點分開安裝,達到數據保護的目的。
步驟如下:
一、准備創建集群的條件
- 切換到數據庫管理員賬戶:~$ su sdbadmin;
- 執行SequoiaDB的shell程序,程序路徑是 /opt/sequoiadb/bin/sdb:
~$ /opt/sequoiadb/bin/sdb
- 連接到數據庫的集群管理服務,在shell環境下,輸入:
> oma = new Oma( "localhost", 11790 )
- 連接成功后,創建一個臨時的協調節點:輸入:
> oma.createCoord( 18800, "/opt/sequoiadb/database/coord/18800" )
- 創建臨時節點成功之后,啟動臨時coord節點:
> oma.startNode( 18800 )
- 等待臨時coord節點啟動,然后就可以連接上coord節點繼續部署:
> db = new Sdb( "localhost", 18800 )
二、創建catalog節點組
- 成功連接到臨時coord節點,開始創建catalog節點組:
> db.createCataRG( "Milky", 11820, "/opt/sequoiadb/database/cata/11820" )
創建成功之后,數據庫系統會創建一個名字為“SYSCatalogGroup”的catalog節點組,此時catalog節點組中還沒有節點,需要接下來繼續創建。
TIPS:第一個參數是服務器的主機名(可以是其它能訪問的其它機器,做到分布式,必須是hostname,慎重使用“localhost”),第二個參數是catalog節點組的服務端口號,第三個參數是catalog節點組的配置文件目錄,系統會自動創建該目錄;
NOTICE:因為我只有一台機器,端口號無法重復使用,因此沿着11820,使用11830和11840。如果條件允許,具有多個物理機部署,完全可以指定 11800端口作為catalog節點服務端口,這樣也方便記憶和管理。下面創建數據節點所用的端口號,原因於此處相同。
Question:為什么我不從11810開始?慢慢來,后面會有解答 :)
- 取得catalog節點組對象,輸入:
> cataRG = db.getRG( "SYSCatalogGroup" )
- 創建第一個catalog節點,輸入:
> catanode1 = cataRG.createNode( "Milky", 11830, "/opt/sequoiadb/database/cata/11830" )
- 創建第二個catalog節點,輸入:
> catanode2 = cataRG.createNode( "Milky", 11840, "/opt/sequoiadb/database/cata/11840" )
TIPS:creaeNode接口的第一個參數是物理機的主機名(前面已經提到過,可以做分布式部署),第二個參數是catalog節點服務端口號,第三個參數是catalog節點配置文件路徑;
- 創建catalog節點成功之后,就是啟動catalog節點了,輸入:
> catanode1.start()
> catanode2.start()
catalog節點啟動成功,意味着集群的創建,成功了1/3;
三、創建數據節點組和數據節點
- 輸入:
> dataRG = db.createRG( "datagroup" )
TIPS:其中參數“datagroup”是數據節點組的名字,可以自行指定;
- 接下來創建第一個數據節點:
> dataRG.createNode( "Milky", 11850, "/opt/sequoiadb/database/data/11850" )
- 創建第二個數據節點:
> dataRG.createNode( "Milky", 11860, "/opt/sequoiadb/database/data/11860" )
- 創建第三個數據節點:
> dataRG.createNode( "Milky", 11870, "/opt/sequoiadb/database/data/11870" )
- 節點創建成功之后,啟動數據組里面的節點:
> dataRG.start()
這個時間會有點長,等待吧 :)
待到數據節點組啟動后,我的集群環境部署已經成功了 2/3。
四、創建coord節點組和coord節點
- 創建coord節點組,輸入:
> coordRG = db.createCoordRG()
- 然后創建一個coord節點:
> coordRG.createNode( "Milky", 11810, "/opt/sequoiadb/database/coord/11810" )
TIPS:當然,你可以創建多個coord節點,我只想創建一個coord節點。
Answer:終於出現了11810端口了,原來是用在協調節點上!
- 然后依然是啟動coord節點組:
> coordRG.start()
等待coord節點組啟動,我的數據庫集群環境部署完畢。接下來是一些清理工作。
五、掃尾
- 刪除臨時coord節點:
> oma = new Oma( "localhost", 11790 )
- 連接上集群管理服務,刪除臨時節點:
> oma.removeCoord( 18800 )
TIPS:18800即是要刪除的臨時節點的服務端口號。
最后,梳理一下整個環境:
整個集群都在一台機器上,其中:
11810:coord節點服務端口;
11820:catalog節點組服務端口;
11830:catalog節點1服務端口;
11840:catalog節點2服務端口;
11850:data節點1服務端口;
11860:data節點2服務端口;
11870:data節點3服務端口。
感謝您看到此處。本問大致操作流程,都是從SequoiaDB官網信息中心得來。因為條件有限,部署環境有所不同,為您帶來了困惑,請見諒!
下一篇將用SequoiaDB進行簡單的數據操作,敬請關注!
=====>THE END<=====