zoukankan      html  css  js  c++  java
  • 在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

  • 相关阅读:
    bugfree3.0.1-修改“优先级”为中文引起的PHP Error
    【vue】vue单元测试:karma+mocha
    【node】node的核心模块---http模块,http的服务器和客户端
    【node】fs模块,文件和目录的操作
    【webpack】从零开始学webpack
    【vue】webpack插件svg-sprite-loader---实现自己的icon组件
    【vue】vue的路由权限管理
    【node】用koa搭建一个增删改服务(一)
    【小程序】小程序之发送模板消息
    【小程序】返回顶部wx.pageScrollTo和scroll-view的对比
  • 原文地址:https://www.cnblogs.com/asver/p/13902706.html
Copyright © 2011-2022 走看看