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

既然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. MIT jos 6.828 Fall 2014 训练记录(lab 3)

    注:源代码参见我的github: https://github.com/YaoZengzeng/jos Part A : User Environments and Exception Handlin ...

  2. java读取word内容

    暂时只写读取word内容的方法. 依赖的jar: poi-3.9-20121203.jarpoi-ooxml-3.9-20121203.jarxmlbeans-2.3.0.jar package co ...

  3. 手把手教你如何用ZBrush刻画脸部

    今天的ZBrush教程我们将参照一张效果图对模型进行脸部刻画.在进入课堂之前我们有必要对Layers层概念和操作有所了解,然后结合之前学习的雕刻笔刷对模型的特征表情给予重点刻画. 详细的视频教程地址请 ...

  4. Vim配置及说明——IDE编程环境

    Vim配置及说明——IDE编程环境 Vim配置及说明——IDE编程环境 1.基本及字体 2.插件管理 3.主题风格 4.窗口设置 5.目录树导航 6.标签导航 7.taglist 8.多文档编辑 9. ...

  5. Treap(树堆):随机平衡二叉树实现

    本文是根据郭家宝的文章<Treap的原理及实现>写的. #include<stdio.h> #include<string.h> #include<stdli ...

  6. Android配置----小米手机通过wifi连接ADB调试Android应用

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  7. AC日记—— codevs 1031 质数环(搜索)

    题目描述 Description 一个大小为N(N<=17)的质数环是由1到N共N个自然数组成的一个数环,数环上每两个相邻的数字之和为质数.如下图是一个大小为6的质数环.为了方便描述,规定数环上 ...

  8. Windows 2008 R2 配置 DNS 实现二级域名

    本文内容 域名解析 准备工作 安装 DNS 服务器 建立 DNS 区域 建立主机头 服务器网络设置 测试二级域名 IIS 建立 Web 站点 其他 DNS 服务 域名解析 域名解析,是域名到 IP 地 ...

  9. Android开发eclipse运行程序时报timeout的解决方法

    eclipse开发Android程序时,忽然莫名其妙报这个错,之前还好好的.忽然就不行了. Failed to install xxx.apk on device~~~: timeout 尝试过手机里 ...

  10. 一个DOM元素绑定多个事件时,先执行冒泡还是捕获

    绑定在被点击元素的事件是按照代码顺序发生,其他元素通过冒泡或者捕获“感知”的事件,按照W3C的标准,先发生捕获事件,后发生冒泡事件.所有事件的顺序是:其他元素捕获阶段事件 -> 本元素代码顺序事 ...