zoukankan      html  css  js  c++  java
  • SequoiaDB 系列之一 :SequoiaDB的安装、部署

    在分析或者参与一个开源项目之前,了解项目构建的目的是有必要的。

    既然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
    

    我采用的是字符向导安装,依次会经过

    1. 语言选择,有 English 和 中文 供选择,我选择是English;
    2. 用户许可协议声明,如有疑问开源选择2,查看协议的具体内容;
    3. 确认许可,选择 y;
    4. 安装目录,默认是 /opt/sequoiadb;(不包括“;”)
    5. 创建数据库管理员账户:用户名,默认是sdbadmin;密码,默认为sdbadmin,如果你需要自己设定数据库管理员用户名和密码,可以在对应的输入提示处输入;
    6. 集群管理服务端口,默认是11790
    7. 开机自启动,我选择的是 Y,确认开机自启动;
    8. 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环境,这个环境和mongodb很像,是一个javascript的执行环境;
    • 连接到数据库的集群管理服务,在shell环境下,输入:
      > oma = new Oma( "localhost", 11790 )
      第一个参数是本地的hostname,第二个是集群管理服务的端口号;
    • 连接成功后,创建一个临时的协调节点:输入:
      > oma.createCoord( 18800, "/opt/sequoiadb/database/coord/18800" )
      第一个参数是所指定的临时coord节点的服务端口号,第二个参数是所指定的临时coord节点的配置文件路径;
    • 创建临时节点成功之后,启动临时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,使用1183011840。如果条件允许,具有多个物理机部署,完全可以指定 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<=====

  • 相关阅读:
    笔记35 跨重定向请求传递数
    判断邮箱的正则表达式
    按钮
    async await 的用法
    笔记34 Spring MVC的高级技术——处理multipart形式的数据
    Convert Sorted Array to Binary Search Tree
    Binary Tree Zigzag Level Order Traversal
    Unique Binary Search Trees,Unique Binary Search Trees II
    Validate Binary Search Tree
    Populating Next Right Pointers in Each Node,Populating Next Right Pointers in Each Node II
  • 原文地址:https://www.cnblogs.com/tynia/p/sequoiadb01.html
Copyright © 2011-2022 走看看