os: centos 7.4
db: postgresql 9.6
BenchmarkSQL 有一些依赖,先处理好依赖
参考了德哥的 https://github.com/digoal/blog/blob/master/201701/20170125_01.md
配置 epel 源
# wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
# yum clean all
# yum makecache
安装 ant、R
# yum install ant R R-devel
ant 是编译打包时用到
R 语言在后面生成报告和图形时时用到。
安装 oracle JDK
默认的是 OpenJDK,替换为 oracle JDK
# /usr/bin/java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
# which java
/usr/bin/java
# ls -l /usr/bin/java
lrwxrwxrwx. 1 root root 22 Sep 29 14:36 /usr/bin/java -> /etc/alternatives/java
# ls -l /etc/alternatives/java
lrwxrwxrwx. 1 root root 72 Sep 29 14:36 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre/bin/java
# ls -l /usr/lib/jvm
total 0
drwxr-xr-x. 3 root root 17 Sep 29 14:36 java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
lrwxrwxrwx. 1 root root 21 Sep 29 14:36 jre -> /etc/alternatives/jre
lrwxrwxrwx. 1 root root 27 Sep 29 14:36 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx. 1 root root 35 Sep 29 14:36 jre-1.8.0-openjdk -> /etc/alternatives/jre_1.8.0_openjdk
lrwxrwxrwx. 1 root root 50 Sep 29 14:36 jre-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64 -> java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre
lrwxrwxrwx. 1 root root 29 Sep 29 14:36 jre-openjdk -> /etc/alternatives/jre_openjdk
卸载 OpenJDK
# rpm -qa |grep -i -E 'java|jdk'
tzdata-java-2017b-1.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
copy-jdk-configs-2.2-3.el7.noarch
# rpm -e --nodeps tzdata-java-2017b-1.el7.noarch
# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
下载oracle jdk 页面
https://www.oracle.com/technetwork/java/javase/downloads/index.html
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
https://download.oracle.com/otn-pub/java/jdk/8u192-b12/750e1c8617c5452694857ad95c3ee230/jdk-8u192-linux-x64.rpm
Linux x64 167.99 MB jdk-8u192-linux-x64.rpm
有160多MB,下载好后使用 rz 上传
# rz
# ls -l
-rw-r--r-- 1 root root 176154290 Dec 6 10:06 jdk-8u192-linux-x64.rpm
# rpm -ivh ./jdk-8u192-linux-x64.rpm
warning: ./jdk-8u192-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:jdk1.8-2000:1.8.0_192-fcs ################################# [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
# java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
# rpm -qa |grep -i -E 'java|jdk'
python-javapackages-3.4.1-11.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
jdk1.8-1.8.0_192-fcs.x86_64
copy-jdk-configs-2.2-3.el7.noarch
# vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_192-amd64
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${CLASSPATH}
export PATH=${JAVA_HOME}/bin:$PATH
下载 benchmarksql-5.0
在 https://sourceforge.net/projects/benchmarksql/ 下载 benchmarksql-5.0.zip
然后上传到 服务器
# su - postgres
$ rz benchmarksql-5.0.zip
$ unzip benchmarksql-5.0.zip
$ ls -l
drwx------ 4 postgres postgres 70 Dec 3 14:26 9.6
drwxr-xr-x 6 postgres postgres 124 May 26 2016 benchmarksql-5.0
-rw-r--r-- 1 postgres postgres 2263539 Dec 5 19:59 benchmarksql-5.0.zip
编译打包 benchmarksql
$ export CLASSPATH=.:/usr/share/java/ant-launcher.jar:${CLASSPATH}
$ cd benchmarksql-5.0
$ ls -l
total 24
-rwxr-xr-x 1 postgres postgres 1130 May 26 2016 build.xml
drwxr-xr-x 3 postgres postgres 17 May 26 2016 doc
-rwxr-xr-x 1 postgres postgres 6376 May 26 2016 HOW-TO-RUN.txt
drwxr-xr-x 5 postgres postgres 129 May 26 2016 lib
-rwxr-xr-x 1 postgres postgres 5318 May 26 2016 README.md
drwxr-xr-x 7 postgres postgres 4096 May 26 2016 run
drwxr-xr-x 6 postgres postgres 67 May 26 2016 src
$ ant -buildfile ./build.xml
Buildfile: /var/lib/pgsql/benchmarksql-5.0/build.xml
init:
[mkdir] Created dir: /var/lib/pgsql/benchmarksql-5.0/build
compile:
[javac] Compiling 11 source files to /var/lib/pgsql/benchmarksql-5.0/build
dist:
[mkdir] Created dir: /var/lib/pgsql/benchmarksql-5.0/dist
[jar] Building jar: /var/lib/pgsql/benchmarksql-5.0/dist/BenchmarkSQL-5.0.jar
BUILD SUCCESSFUL
Total time: 3 seconds
下载 postgresql jdbc驱动
下载最新java版本对应的 postgresql jdbc jar,替换旧版本
https://jdbc.postgresql.org/download.html
$ cd ./lib/postgres/
$ mv ./postgresql-9.3-1102.jdbc41.jar /tmp
$ wget https://jdbc.postgresql.org/download/postgresql-42.2.5.jar
$ ls -l
total 808
-rw-r--r-- 1 postgres postgres 825943 Aug 27 23:43 postgresql-42.2.5.jar
配置log4j
修改log4j,减少日志打印量。priority改成info,只输出最终结果,不输出产生订单的日志。
$ find ./ -name log4j.properties
./run/log4j.properties
$ vi ./run/log4j.properties
log4j.rootLogger=INFO, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= %d{HH:mm:ss,SSS} [%t] %-5p %x %C{1} : %m%n
至此,benchmarksql 已经安装好了。
参考:
https://sourceforge.net/projects/benchmarksql/
https://github.com/digoal/blog/blob/master/201701/20170125_01.md