Loading

在docker中搭建VoltDB并运行测试TPCC

环境要求:

In addition, VoltDB's build system requires the following software:

  • Java 1.8
  • Apache Ant 1.7 or newer
  • A compiler with C++11 support: GNU C++ 4.4 or newer or on OS X, XCode 5.0 (with Clang 3.3) or newer
  • Python 2.6 or newer
  • cmake 2.8 or newer

1. 在ubuntu14.04安装jdk8

1.1

先在jdk官网下载jdk8 ,这里我提前下好了放在百度云盘 : jdk-8u271-linux-x64.tar 提取码:lbp9。 (注意: 下载x64版本,aarch64版本对应是RAM的)

如果是qemu虚拟机的docker的话,需要先把下载好的文件上传到真机linux环境中,然后从真机linux环境中通过scp命令传到qemu虚拟机里面.

下面,ip地址是qemu虚拟机的ip地址
scp jdk-8u271-linux-x64.tar root@192.168.122.47:/root

1.2

下载好了之后,上传到主机linux目录下,然后在主机目录下使用docker的cp命令上传到docker环境的/usr/lib/jvm中, 如果/usr/lib中没有jvm文件夹,就用sudo创建一个jvm.

sudo docker cp jdk-8u271-linux-aarch64.tar.gz <dockerID>:/usr/lib/jvm

然后进入docker环境中,

sudo docker exec -it <dockerID> /bin/bash

在docker中进入/usr/lib/jvm中,对jdk8进行解压:

cd /usr/lib/jvm
sudo tar zxvf jdk-8u271-linux-x64.tar.gz -C /usr/lib/jvm

1.3

然后添加环境变量

vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_271
export JRE_HOME=/usr/lib/jvm/jdk1.8.0_271
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

然后更新环境变量

source /etc/profile

1.4

然后查看是否安装成功

java -version

java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

到此,docker里面的java环境安装成功!

2. 在ubuntu14.04中安装Apache Ant

2.1

先下好Apache Ant 1.9,可以在Apache Ant官网下载, 我提前放在百度云里面 Apache Ant 1.9,提取码:4tnj .

2.2

下载好了之后,上传到主机linux目录下,然后在主机目录下使用docker的cp命令上传到docker环境的/usr/lib中,

sudo docker cp apache-ant-1.9.15-bin.tar.gz <dockerID>:/usr/lib

然后进入docker环境中,

sudo docker exec -it <dockerID> /bin/bash

在docker中进入/usr/lib中,对apache ant1.9进行解压:

sudo tar zxvf apache-ant-1.9.15-bin.tar.gz -C /usr/lib

2.3

设置环境变量

vim /etc/profile

export ANT_HOME=/usr/lib/apache-ant-1.9.15
export PATH=$PATH:$ANT_HOME/bin

#然后激活配置文件
source /etc/profile

#查看是否安装成功
ant -version
Apache Ant(TM) version 1.9.15 compiled on May 10 2020

到此,docker里面的apache ant 安装成功!

3.在ubuntu14中安装gcc, c++等

#安装gcc
sudo apt-get install build-essential

gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



#安装g++
sudo apt-get install g++

g++ --version
g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


4.在ubuntu14.04中安装python2.7环境

python参考链接:

Python 基础教程| 菜鸟教程

Python教程- 廖雪峰的官方网站

安装方式1:源码安装

先在python官网中下载python2.7

使用sudo docker cp Python-2.7.18.tgz 6783a97aba30:/usr/lib命令上传到docker容器中

进入容器后

#首先解压
tar zxvf Python-2.7.18.tgz
#进入解压后的
cd Python-2.7.18

#运行脚本
./configure

#编译
make
...

#安装
make install
...

#成功后查看安装版本
python --version
Python 2.7.18

#查看python安装的目录
ls /usr/local/bin/

执行以上操作后,Python 会安装在 /usr/local/bin 目录中,Python 库安装在 /usr/local/lib/pythonXX,XX 为你使用的 Python 的版本号。

安装方式2:conda

//可自行查资料.

5.ubuntu安装cmake

sudo apt-get install cmake

cmake --version
cmake version 3.16.3

6.继续安装VoltDB的环境

sudo apt-get install ant-nodeps ant-junit ant-scripts ant-javadoc ant-trax \
   gcc python valgrind ntp git-all python-httplib2 python-setuptools \
   python-devel ccache cmake bzip2

获取VoltDB的代码:

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

git clone可能会很慢,可以直接在VoltDB git上下载好,然后上传到ubuntu,接着通过docker cp命令上传到各个容器里面.

sudo docker cp voltdb-master.zip ac249477d308:/root

通过直接下载应该是zip文件,这时候使用解压命令

#先安装unzip命令
sudo apt-get install unzip

#然后解压zip文件
unzip voltdb-master.zip
cd voltdb-master

#干净的构建
ant clean
ant

6.1 运行测试app中的TPCC

cd /voltdb-master/tests/test_apps/tpcc

./run.sh server &

#Wait for the server to start
./run.sh init
./run.sh client

./run.sh server & 后的运行结果是

image-20201028085705605

#Wait for the server to start
./run.sh init
./run.sh client

运行客户端后的结果是:

image-20201028085856885

6.2 可能会出现的报错处理

6.2.1 重启容器后环境配置失效

当关闭容器后,重新进入容器,运行VoltDB的测试用例时候,可能会提醒你没有java ,ant等环境

这时候其实之前我们已经安装过了,只要重新运行一下启动配置文件即可解决

source /etc/profile

6.2.2 在跑TPCC on VoltDB的时候可能遇到需要把大页调整为Disable状态

直接在docker里面运行VoltDB的TPCC会报错如下,因为TPCC主要是关注小页的benchmark, 提示关闭大页.

image-20201029095119108

遇到上面这种错误,因为容器和系统共享交换分区,我们先退出Docker,然后在ubuntu里面运行上述提示的两个命令,

 sudo bash -c "echo never > /sys/kernel/mm/transparent_hugepage/enabled"
 sudo bash -c "echo never > /sys/kernel/mm/transparent_hugepage/defrag"
 
 #可以通过下述命令查看ubuntu系统是否已经关闭了大页
 cat /sys/kernel/mm/transparent_hugepage/enabled
 always madvise [never]

即可解决.

可以把VoltDB数据库的server服务路径加入到/etc/profile的最末尾

image-20201030152839429

export PATH=$PATH:/root/voltdb-master/bin
:wq

source /etc/profile

参考链接:

VoltDB要求配置链接:Building VoltDB

VoltDB官方指导安装目录

VoltDB免费在线视频学习课程(会英文的同学,强烈推荐学习):http://voltdb.com/resources/volt-university/tutorials/

VoltDB的JIRA系统:https://issues.voltdb.com/

VoltDB的社区论坛:https://forum.voltdb.com/

VoltDB的支持邮箱:有任何疑问都可以发到此邮箱 support@voltdb.com

VoltDB的应用部署参考: https://forum.voltdb.com/forum.php?19

posted @ 2020-10-30 16:15  Hulab-StoSys  阅读(807)  评论(0)    收藏  举报