在分析或者参与一个开源项目之前,了解项目构建的目的是有必要的。
既然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
我采用的是字符向导安装,依次会经过
最后就是继续安装确认,必须选择 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节点;
我只有一台机器,因此部署的是一个伪集群环境:所有的数据节点都在一台机器上,无法保证数据安全。如果用于生产系统,最好的做法是把集群中的节点分开安装,达到数据保护的目的。
步骤如下:
一、准备创建集群的条件
~$ /opt/sequoiadb/bin/sdb
> oma = new Oma( "localhost", 11790 )
> oma.createCoord( 18800, "/opt/sequoiadb/database/coord/18800" )
> oma.startNode( 18800 )
> db = new Sdb( "localhost", 18800 )
二、创建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开始?慢慢来,后面会有解答 :)
> cataRG = db.getRG( "SYSCatalogGroup" )
> catanode1 = cataRG.createNode( "Milky", 11830, "/opt/sequoiadb/database/cata/11830" )
> catanode2 = cataRG.createNode( "Milky", 11840, "/opt/sequoiadb/database/cata/11840" )
TIPS:creaeNode接口的第一个参数是物理机的主机名(前面已经提到过,可以做分布式部署),第二个参数是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节点
> coordRG = db.createCoordRG()
> coordRG.createNode( "Milky", 11810, "/opt/sequoiadb/database/coord/11810" )
TIPS:当然,你可以创建多个coord节点,我只想创建一个coord节点。
Answer:终于出现了11810端口了,原来是用在协调节点上!
> coordRG.start()
等待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<=====