voltdb编译安装

参考:

https://blog.csdn.net/u010817321/article/details/52118254

https://blog.csdn.net/u011569805/article/details/38275481

https://my.oschina.net/whchsh/blog/102505

https://www.cnblogs.com/bluekuaker/articles/2356971.html

http://www.cnblogs.com/kkyycom/p/9345897.html

 

ubuntu下voltdb编译安装

voltdb的代码以及系统构建都是在64位的linux/OS X之上的,它的编译需要如下环境:

 

  • java 1.8
  • Apache Ant 1.7 或者更高版本
  • 一个支持C++11的编译器
  • Python 2.6 或者更高版本
  • cmake 2.8 或者更高版本

 

以下讲述的是在ubuntu16下编译voltdb的过程

 

一、.编译环境搭建

 

1.ubuntu下安装jdk1.8

 ubuntu上JDK的安装同windows上类似,只需要下载解压后配置环境即可。

 

 

1.1.JDK1.8的下载

下载链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

1.2.JDK1.8的安装

 

1.2.1上传到linux服务器并解压

这里将jdk-8u101-linux-x64.tar文件上传到服务器/usr/local目录下

 

1.2.2解压并修改目录名称

进入目录 #cd /usr/local

解压 #tar -zxvf jdk-8u65-linux-x64.tar.gz

进入解压后的目录 #cd jdk1.8.0_65

修改目录名称 #mv jdk1.8.0_65 jdk

 

1.2.3设置环境变量

修改/etc/profile配置文件: #vi /etc/profile

 

 
  1. export JAVA_HOME=/usr/local/jdk

  2. export JRE_HOME=/usr/local/jdk/jre

  3. export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

  4. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

然后保存退出。

使更改的配置立即生效:#source /etc/profile

1.3.测试 # java -version

若显示 java version “1.8.0_101″(不同jdk版本显示不同),则表示安装成功。

 

2.ubuntu下安装ant

 

2.1.官网下载ant二进制发行版 :http://ant.apache.org/bindownload.cgi

2.2.解压并移动到某个目录下(这里直接在usr/解压后重命名)   

#tar -zxvf apache-ant-1.9.7-bin.tar.gz 

#mv apache-ant-1.9.7-bin.tar.gz  ant1.9.7

2.3.配置环境变量

#vi /etc/profile

 

 
  1. //添加到文档末

  2. export ANT_HOME=/usr/ant1.9.7

  3. //将ant添加到环境变量中

  4. export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH

 

然后保存退出。

使更改的配置立即生效:#source /etc/profile

2.4.测试

#ant -version

 

若显示:Apache Ant(TM) version 1.9.7 compiled on April 9 2016 则表示安装成功

 

3.GCC

运行命令:sudo apt-get  install  build-essential

linux检查GCC是否安装:

gcc -v

 

4.Ubuntu下安装Python

运行命令: sudo apt install python-minimal

 

5.Ubuntu下安装cmake

运行命令:sudo apt-get install cmake

安装完成后,运行 cmake -h,显示cmake的版本以及Options参数说明时即说明安装成功。

 

二、获取voltdb源代码并编译

1.voltdb源代码的获取:

 

git clone https://github.com/VoltDB/voltdb.git

2.编译

 

clone下来后,解压并进入解压后的文件根目录下,运行如下命令

ant 

注:有时可能会提示没有权限执行某些操作,则可以使用如下命令: sudo chmod -R 777 voltdb-master

等待编译完成。

3.运行Unit Tests

可以通过 ant JUnit来运行JUnit Test。

我们可以通过运行例程检验编译是否成功,例如

/cd exsamples/voter
./run.sh server

如果最终提示:Server completed initialization.表明编译正确,服务正常启动 
如果提示缺少库文件或class,表明编译出错  如果提示端口被占用,需要修改运行脚本中的端口,具体参照下一节。

如上图所示,运行./run.sh server时出错了,依照提示执行如下命令,在会话中禁用THP,然后再次运行./run.sh server,执行成功, 如下图所示

 

*******************************************************************************************************

初始化命令:

voltdb init

如果是第一次运行,需要先进行初始化,这个命令会初始化voltdb存储配置文件、日志和其他基于磁盘信息的根目录

开发过程中,如果需要使用新配置或者完全不同的数据库重新开始,可以使用强制初始化命令:

voltdb init --force

启动命令:

voltdb start

启动成功后会在控制台显示:Server completed initialization.

 

重启命令:

voltdbadmin shutdown

voltdb init

voltdb start

如果启动的时候报错,可以重启下试试。

 

打开一个新的命令行窗口或终端,进入sqlcmd所在的目录,输入以下命令,回车:

sqlcmd

终端窗口会显示:SQL Command::localhost:21212,并换行显示一个数字编号的提示符,如下图所示:

可以在这里输入DDL语句或SQL查询,执行存储过程,或者键入"exit"结束程序并返回shell提示符,如下图所示:

CTRL+C键也可以停止voltdb进程。

 

载入DDL文件指令:

FILE 文件路径+文件名

 

加载数据命令

csvloader --separator "|" --skip 1 --file towns.txt towns

separator标志允许您指定分隔各个数据条目的字符。
数据文件包括带列标题的行。该--skip 1标志告诉csvloader跳过第一行。
file标志告诉csvloader要用作输入的文件。如果未指定文件,则csvloader使用标准输入作为数据源。
参数towns告诉csvloader将数据加载到哪个数据库表中。

运行这个命令时,可能会遇到下图所示报错:

Strict java memory checking is enabled,don't do release builds or performance runs with this enabled.Invoke "ant clean" and "ant -Djmemcheck=NO_MEMCHECK" to disable.

从提示中可以看出数据加载失败,并且报了一个错。

按照提示中的方式,回到voltdb-master目录下,依次运行

ant clean

ant -Djmemcheck=NO_MEMCHECK

两个命令,重新进行编译。

等待编译完成后再次运行voltdb,发现运行提示中已经没有Strict java memory checking is enabled的提示了。

注意,必须先运行 ant clean,再运行 ant -Djmemcheck=NO_MEMCHECK,两个命令缺一不可,否则无法解决这个报错的问题。

 

表分区语句:

PARTITION TABLE 表名 ON COLUMN 列名;

例如:

PARTITION TABLE towns ON COLUMN state_num;

注意:表中已有数据的情况下,这项操作会失败,如下图所示

解决办法就是:关闭voltdb,重新初始化,重新启动,重新建表(建表后插入数据前对表进行分区),重新

载入数据。

每次使用init和start命令重新初始化并启动数据库时,都会启动一个新的空数据库。

 

保留数据库

命令日志记录:将所有数据库活动(包括架构和数据更改)记录到磁盘。如果数据库停止,只需使用 voltdb start命令重启数据库即可恢复命令日志。企业版默认启用。

快照:VoltDB数据库的完整磁盘表示,包括在关闭后重现数据库所需的所有内容。

    voltadmin save命令:随时创建正在运行的VoltDB数据库的快照。

    默认情况下,快照将保存到数据库根目录的子文件夹中。或者,您可以将快照文件的位置和名称指定为voltadmin save命令的参数。但是将快照保存到默认位置是有利的。因为如果根目录中有任何快照, voltdb start命令会在数据库重新启动时自动恢复最新的快照。

    VoltDB允许您在关闭数据库时创建最终快照,只需在shutdown命令中添加 --save参数即可。即:

        voltadmin shutdown --save

以上命令验证过,是有效的,但不确定是否跟调用命令的目录有关系,因为失败了一次,成功了一次。

 

添加表:CREATE TABLE

删除表:DROP TABLE

修改表:ALTER TABLE,可修改正在运行中的数据库

删除列:DROP COLUMN,可修改正在运行中的数据库

    例如:ALTER TABLE towns DROP COLUMN state;

许多架构更改(包括添加,删除和修改表,列和索引)都可以即时完成。但是,有一些限制。例如,您无法向已包含数据的表添加新的唯一约束。

voltadmin restore:将数据从快照恢复到更新的模式

 

创建存储过程:

CREATE PROCEDURE 存储过程名 AS

对存储过程进行分区

CREATE PROCEDURE 存储过程名
PARTITION ON TABLE 表名 COLUMN 列名
AS
执行存储过程:

EXEC 存储过程名 参数

例如:exec leastpopulated 6

*******************************************************************************************************

voltdb源码编译

 

1. https://github.com/VoltDB/voltdb 下载源码

2. 安装ant环境

3. 进入解压目录执行ant dist,注意jdk版本1.7

4. 加入环境变量

 

 
  1. export ANT_HOME=/root/opt/apache-ant-1.9.4

  2. export VOLTDB_HOME=/root/opt/voltdb/voltdb-4.5

  3. export PATH=$VOLTDB_HOME/bin:$ANT_HOME/bin:$PATH


5.编译 启动

 

 

 
  1. voltdb compile -o towns.jar towns.sql

  2. voltdb create towns.jar --deployment=deployment.xml --host=cluster172


6. 其他操作

 

 

 
  1. insert into towns values ('Bill','Middlesex','MA');

  2. select count(*) as total from towns;

  3.  
  4. 停止集群

  5. voltadmin pause

  6. voltadmin save --blocking /tmp/voltdb backup

  7. voltadmin shutdown

  8.  
  9. 重新启动数据库

  10. 1.voltdb create towns.jar --deployment=deployment.xml --host=cluster172

  11. 2. voltadmin pause

  12. voltadmin restore /tmp/voltdb backup

  13. voltadmin resume


7.社区版从4.0开始不支持voltadmin save restore 

 

 
  1. <?xml version="1.0"?>

  2. <deployment>

  3. <cluster hostcount="4" sitesperhost="2" />

  4.  
  5. <httpd enabled="true">

  6. <jsonapi enabled="true" />

  7. </httpd>

  8.  
  9. </deployment>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值