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

既然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,使用。如果条件允许,具有多个物理机部署,完全可以指定 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即是要删除的临时节点的服务端口号。

最后,梳理一下整个环境:

整个集群都在一台机器上,其中:

:coord节点服务端口;

11820:catalog节点组服务端口;

:catalog节点1服务端口;

:catalog节点2服务端口;

:data节点1服务端口;

:data节点2服务端口;

:data节点3服务端口。

感谢您看到此处。本问大致操作流程,都是从SequoiaDB官网信息中心得来。因为条件有限,部署环境有所不同,为您带来了困惑,请见谅!

下一篇将用SequoiaDB进行简单的数据操作,敬请关注!

=====>THE END<=====

SequoiaDB 系列之一 :SequoiaDB的安装、部署的更多相关文章

  1. kylin 系列(一)安装部署

    kylin 系列(一)安装部署 一.环境说明 1.1 版本选择 cdh 版本下载地址:http://archive.cloudera.com/cdh5/cdh/5/ 软件名称 版本 JDK 1.8 H ...

  2. Hive 系列(一)安装部署

    Hive 系列(一)安装部署 Hive 官网:http://hive.apache.org.参考手册 一.环境准备 JDK 1.8 :从 Oracle 官网下载,设置环境变量(JAVA_HOME.PA ...

  3. HBase 系列(二)安装部署

    HBase 系列(二)安装部署 本节以 Hadoop-2.7.6,HBase-1.4.5 为例安装 HBase 环境.HBase 也有三种模式:本地模式.伪分布模式.分布模式. 一.环境准备 (1) ...

  4. Greeplum 系列(二) 安装部署

    Greeplum 系列(二) 安装部署 本章将介绍如何快速安装部署 Greenplum,以及 Greenplum 的一些常用命令及工具.本章不会涉及硬件选型.操作系统参数讲解.机器性能测试等高级内容, ...

  5. prometheus学习系列三:node_exporter安装部署

    node_exporter简介 node_exporter安装部署 [root@node00 ~]# cd /usr/src/ [root@node00 src]# wget https://gith ...

  6. ZooKeeper系列(2) 安装部署 (转)

    原文地址:http://www.cnblogs.com/wuxl360/p/5817489.html 一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模 ...

  7. 【Apache KafKa系列之一】KafKa安装部署

    kafka是一种高吞吐量的分布式发布订阅消息系统,她有如下特性: 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能. 高吞吐量:即使是非常普通的 ...

  8. SequoiaDB 系列之三 :SequoiaDB的高级功能

    上一篇简单描述了一下SequoiaDB的简单CRUD操作,本篇将讲述一下稍微高级点的功能. 部署在我机器上的集群环境,在经过创建名字为"foo"的cs,创建名字为"bar ...

  9. SequoiaDB 系列之七 :源码分析之catalog节点

    这一篇紧接着上一篇SequoiaDB 系列之六 :源码分析之coord节点来讲 在上一篇中,分析了coord转发数据包到catalog节点(也有可能是data节点,视情况而定).这一次,我们继续分析上 ...

  10. SequoiaDB 系列之六 :源码分析之coord节点

    好久不见. 在上一篇SequoiaDB 系列之五   :源码分析之main函数,有讲述进程开始运行时,会根据自身的角色,来初始化不同的CB(控制块,control block). 在之前的一篇Sequ ...

随机推荐

  1. hdu 2196 Computer 树形dp模板题

    Computer Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  2. JAVA RMI helloworld入门

    Java RMI 指的是远程方法调用 (Remote Method Invocation).它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法.可以用此方 ...

  3. Hadoop中WritableComparable 和 comparator

    1.WritableComparable 查看HadoopAPI,如图所示: WritableComparable继承自Writable和java.lang.Comparable接口,是一个Writa ...

  4. jmeter的使用(一)

    1.下载jmeter:http://jmeter.apache.org/download_jmeter.cgi 2.启动jmeter,打开jmeter.bat 3.添加线程组 4.添加http请求 5 ...

  5. 【读书笔记《Android游戏编程之从零开始》】10.游戏开发基础(View 游戏框架)

    对于玩家来说,游戏是动态的:对于游戏开发人员来说,游戏是静态的,只是不停地播放不通的画面,让玩家看到了动态的效果. 进入Android之前,首先要熟悉三个重要的类:View(视图).Canvas(画布 ...

  6. 如何实现ZBrush 4R7中按钮颜色的自定义

          本文详细讲解在ZBrush® 4R7中如何改变按钮颜色. Zbrush默认的开关按钮颜色为橙黄色,若您不喜欢当前颜色,可以通过“Icolors”功能按钮下的各命令来更改界面开关颜色及透明度 ...

  7. 边工作边刷题:70天一遍leetcode: day 84

    Flatten 2D Vector 要点: 这题是2d的iterator,一般对于1d的情况,hasNext()是不需要做移动的.而2d不同,core iterator是j向的,而i向要在hasNex ...

  8. python中*args和**args的不同

    上一段代码,大家感受一下 def test_param(*args): print(args) def test_param2(**args): print(args) test_param('tes ...

  9. C/C++学习----C语言简介

    [开发环境] 物理机版本:Win 7 旗舰版(64位) IDE版本:Visual Studio 2013简体中文旗舰版(cn_visual_studio_ultimate_2013_with_upda ...

  10. A*寻路初探 GameDev.net

    A*寻路初探 GameDev.net MulinB按:经典的智能寻路算法,一个老外写的很透彻很清晰,很容易让人理解神秘的A*算法.以下是一个中文翻译版. A*寻路初探 GameDev.net 作者: ...