您的位置:首页 > 数据库

SequoiaDB(巨杉数据库)(社区版)安装配置使用图解

2013-09-17 14:35 357 查看
SequoaiDB是一款新型企业级分布式非关系型数据库,提供了基于PC服务器的大规模集群数据平台。作为全球第一家企业级文档式NoSQL分布式数据库,为用户提供了一个高扩展性、高可用性、高性能、易维护的分布式数据平台,来满足用户对大数据实时分析、降低成本的需求。产品使用C++开发。官方网站地址是:http://www.sequoiadb.com/,用户可以在此获得更详细的信息。

(一)下载安装包:

官方提供的最新版本是:1.3,本文所用的版本就是这个版本(操作系统Ubuntu12.04)。

官方下载地址:http://www.sequoiadb.com/index.php?p=downserver,选择“数据库”项,然后点击Downloads,如图:





转入到填写资料页面,前三项必填,填写完毕后按“确定”即可下载。





下载的路径可自己定义,完成之后会得得下面压缩包。如图:





(二)安装前准备:

配置主机名:使用root权限登录,执行sudo hostname sdbserver1(sdbserver1为主机名称,可根据实际情况修改),然后执行hostname命令加以验证(打印信息为“sdbserver1”,成功),如图:





使用root权限,执行 sudo vim /etc/hosts ,修改 /etc/hosts文件,将服务器节点的主机名与IP映射关系配置到此文件中并保存退出。如图:





验证:分别执行ping sdbserver1 -c 2(本机主机名),ping sdbserver2 -c 2(远端主机名)可以ping通即配置成功。如图:





调整ulimit:执行sudo vim /etc/security/limits.conf,配置如图:





参数说明:core:数据库出现故障时产生core文件用于故障诊断,生产系统建议关闭;

data:数据库进程所允许分配的数据内存大小;

fsize:数据库进程所允许寻址的文件大小;

rss:数据库进程所允许的最大resident set大小;

as:数据库进程所允许最大虚拟内存录址空间限制。

更改配置保存退出,然后重新登录以使配置生效。

调整内核参数:使用下列命令输出当前vm配置,并将其归档保存,如图:





然后执行sudo vim /etc/sysctl.conf,添加内核参数(当数据库可用物理内存不足8GB时不需使用vm.swappiness = 0;vm.min_free_kbytes = <物理内存大小的5%,单位KB>)如图:





保存退出,执行sudo /sbin/sysctl -p,使配置生效,如图:





注:1、每台作为数据库服务器的机器都需要配置,类同,在此略过。

2、用户应尽可能使数据目录、索引目录与日志目录存放在不同物理磁盘中,以减少顺序I/O与随机I/O之间的竞争。

(三)安装

在压缩包所在目录下执行tar zxvf sequoiadb-1.3-linux_x86_64-installer.tar.gz,解压得到安装程序并增加可执行权限,chmod a+x sequoiadb-1.3-linux_x86_64-installer.run,如图:





然后执行安装程序,sudo ./sequoiadb-1.3-linux_x86_64-installer.run –mode text,程序提示选择向导语言,输入2(中文)执行,会出现软件安装受权协议,按提示操作即可,如图:





如果接受协议,按y执行后,此时系统提示输入安装目录,如图:





输入安装目录后按回车(默认安装在/opt/sequoiadb目录下),此时系统提示输入用户名,该用户名用于运行sequoiadb服务,输入用户名后按回车(默认创建sdbadmin用户),系统提示输入用户的密码和确认密码,,如图:





输入两次密码后(默认密码为sdbadmin),系统提示输入配置服务端口,输入端口(默认50010),之后系统提示开始安装,需要用户确认,输入Y,如图:





回车,系统自动安装,将于1分钟内安装安成,如图:





至此,sequoiadb已成功安装完毕。

(四)配置与启动

分为独立模式与集群模式,独立模式应用于数据总量不大,IOPS吞吐较小的场景,配置相对简单,可查阅官网相应技术文档,在这里主要介绍集群模式的配置与启动。

在每台数据库服务器上进入安装目录,检查SequoiaDB服务状态:执行service sdbcm status,确认系统提示“sdbcm is runing”,表示服务正在运行,否则执行service sdbcm start启动配置服务程序。如图:





执行su –preserve-environment sdbadmin,切换到sdbadmin用户,在任意一台数据库服务器上,创建协调节点配置目录,mkdir -p /opt/sequoiadb/conf/loca/5000其中50000为协调节点的服务端口,可根据需要配置,如图:





拷贝协调节点样例配置文件,cp ./conf/samples/sdb.conf.coord ./conf/local/50000/sdb.conf

并创建数据文件存放路径,mkdir -p /opt/sequoiadb/database/coord,然后启动协调节点进程,./bin/sdbstart -c ./conf/local/50000/,如图:





启动SequoiaDB Shell控制台,./bin/sdb,在shell中输入var db = new Sdb(“localhost”,50000),连接到协调节点,其中50000为协调节点端口号,如图:





创建一个编目节点组,包括服务器主机名,编目节点服务端口,数据文件存放路径,输入db.createCataRG(“sdbserver1”,30000,”/opt/sequoiadb/database/cata/30000”),如图:





然后开始添加第二个编目节点,输入

var node1 = catarg.createNode(“sdbserver2”,30000,”/opt/sequoiadb/database/cata/30000”),如图:





启动编目节点组,输入node1.start(),如图:





注:创建节点的第一个参数必须为“主机名”,而不能为主机的IP。

在另一服务器上启动协调节点,方法同上,如图:





vim ./conf/local/50000/sdb.conf 文件内容,为Catalog服务地址和端口,找到catalogaddr=,写入内容如图:





保存退出。然后创建数据文件存放路径,并启动协调节点进程,如图:





到此配置完毕,还可以此同样的方法,布署第三台服务器(最多可布署七台,实际生产环境中建议布署三台,这种部署方式可靠性高,任意一个物理服务器故障,数据的读写都不会受到影响)。

可通过配置启动SequoiaDB web服务管理,来实现web界面操控数据库,在当前目录下输入并执行./tools/server/php/bin/php -S 192.168.20.57:8080 -t /opt/sequoiadb/www/,如图:





其中IP地址、服务端口号及服务器指向的跟目录可按实际安装环境中自行更改。此时在浏览器中输入http://192.168.20.57:8080,即可访问数据库管理页面,如图:





登录即可进入后台管理,如图:





在服务器命令行界面按Ctrl-C可退出web界面服务操作,如图:





通过上面一系列操作,SequoiaDB现在已全部安装配置完成,接下来就是日常管理及应用开发,可参见《SequoiadDB初探》、《SequoiaDB再探》(网址)及官网信息中心http://www.sequoiadb.com/document/1.0/index.html,这里不多加表述了。

本条目发布于2013 年 9 月 16 日。属于教程分类,被贴了

安装配置 标签。作者是wangzhonnew

非关系型数据库SequoiaDB虚拟机下应用再探

发表回复

上一次浅谈了SequoiaDB在虚拟机上的安装及在web下图形界面的基本操控,现在来体验命令行操作及运行samples文件。

基本DDL操作

首先在视窗窗口同时按Ctrl+Alt+T,进入到命令行窗口,这时要切换成超级用户root,进入到sequoiadb命令行窗口,执行:sudo su -,密码为sequoiadb,如图:





执行:/opt/sequoiadb/bin/sdb,进入SequoiaDB shell,如图:





执行:db=new Sdb(“localhost”,50000),创建一个协调节点的对象,如图:





执行:db.listCollectionSpaces(),查看当前所有数据库集合空间,如图:





执行:db.createCS(“testfoo”),创建数据库集合空间,如图:





执行:db.testfoo.createCL(“bar”,{ShardingKey:{a:1}}),创建数据库集合,在数据库集合中加入切分条件,以a字段为切分对象,升序切分,(会有几秒等待时间),如图:





执行:db.testfoo.bar.insert({a:1}),插入数据,如图:





执行:for(i=50;i<=150;i++){db.testfoo.bar.insert({a:i})},利用率for 循环批量插入数据,如图:





执行:db.testfoo.bar.find({a:{$lt:55}}),条件查询,查找字段为a值小于55的值,如





利用多个物理组,做数据切分。

执行:db.snapshot(4),查看原数据库存集合存放在哪一个组上,可以在打印的信息中看到”GroupName”:”group1” ,即原数据库集合存放在group1中,如图:(请看最下面两行)





执行:db.testfoo.bar.split(“group1”,”group2”,{a:100}),进行数据切分,以a为切分字段,a小于100的数据存放到group1组中,a大于等于100的数据存放到group2组中,如图:





执行:data1=new Sdb(“localhost”,51000),连接数据节点group1,如图:





执行:data1.testfoo.bar.count(),验证group1中的数据数量,应为51,如图:





执行:data2=new Sdb(“localhost”,54000),连接数据节点group2,如图:





执行:data2.testfoo.bar.count(),验证group2中的数据数量,应为51,如图:





执行:quit,退出Sequoiadb数据库命令,如图:





以上是Sequoiadb是一些基本DLL操作,下面看看如何停止及启动某一个sequoiadb数据库进程的一些操作。

执行:ps -ef | grep sequoiadb,查看sequoiadb开启的进程端口号,如果是用startSequoiadb.sh启动sequoiadb数据库,那么50000端口属于协调节点,30000属于编目节点,其余的端口为数据节点,如图:





执行:/opt/sequoiadb/bin/sdbstop -p 51000,可以停止端口为51000的数据节点,如图:





执行:ps -ef | grep sequoiadb,再次查看sequoiadb开启的进程端口号,可发现端口51000的进程已经停止了,如图:





执行:/opt/sequoiadb/bin/sdbstart -c /opt/sequoiadb/conf/local/51000,即可启动已经被停止的进程,如图:





执行:ps -ef | grep sequoiadb,再次查看sequoiadb开启的进程端口号,可发现端口51000的进程已经启动了,如图:





集合空间环境的清理

执行:/opt/sequoiadb/bin/sdb “db=new Sdb(‘localhost’,50000)”,如图:





执行:/opt/sequoiadb/bin/sdb “db.dropCS(‘foo’)”,清理集合空间“foo”如图:





执行:/opt/sequoiadb/bin/sdb “db.dropCS(‘foo’)”,当再次清理名为“foo”的集合空间是,dropCS命令返回-34,则意味集合空间“foo”已不存在,清空成功,如图:





运行samples文件

执行:cd /opt/sequoiadb/samples/CPP,进入/opt/sequoiadb/samples/CPP目录,如图:





执行:ls,可以查看到此目录下的文件,如图:





执行/opt/sequoiadb/samples/CPP/buildApp.sh 文件名(不需要加文件后缀),或在此目录下执行./buildApp.sh 文件名(不需要加文件后缀),可编译C、CPP文件。下面举例说明。例如:编译index.cpp文件,执行后会在/opt/sequoiadb/samples/CPP/build目录下生成可执行文件。

执行:/opt/sequoiadb/samples/CPP/buildApp.sh index,或./buildApp.sh index,然后ls可查看到新生成的目录build及其目录下的文件,如图:





执行:LD_LIBRARY_PATH=/opt/sequoiadb/lib/ \

/opt/sequoiadb/samples/CPP/build/index localhost 50000 “” “”,运行sample的可执行文件,参数有主机名、端口号、用户、密码,(运行时间稍长,约一分钟左右)如图:





至此,SequoiaDB数据库命令行基本操控简单介绍完毕,由于接触时间不久,只能做到管中窥豹,愿能起到抛砖引玉吧,若深入了解请详见官网技术文档SequoiaDB信息中心,欢迎更多朋友交流心得体会,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sequoiadb nosql 大数据