Skip to content
Boris Glavic edited this page Feb 6, 2017 · 1 revision

Building HRDBMS

Download the source code as well as the 2 dependency jar files. Alternatively, we provide a docker deployment that creates a 2 node HRDBMS cluster for test and development deployments. When you build your project, you need to create a single output jar file called HRDBMS.jar that includes all of the stuff from the 2 dependency jar files within it.

Now we also support building with ant:

ant createJar

which generates a HRDBMS.jar in the build folder.

Installing HRDBMS

nodes.cfg

Create a file called nodes.cfg that has this format.

cc082.cooley, C, rack1, /home/hrdbms
cc123.cooley, W, rack1, /home/hrdbms
cc077.cooley, W, rack1, /home/hrdbms
...

The first field is the hostname or ip of the node. The second field is C or W for whether the node is a coordinator or a worker. The third field is the name of the rack that the node is on. The fourth field is the "install directory" for HRDBMS on that node. This is the directory where the HRDBMS.jar file exists on that node. Distribute this nodes.cfg file to all nodes. It needs to exist in the install directory on each node and it needs to be identical on all nodes.

Distribute files

Distribute the HRDBMS.jar file and the huffman.dat file to all nodes. Make sure to put it in whatever the install directory is for each node.

Set up passwordless ssh

Set up passwordless ssh for the userid that you will run HRDBMS under between each coordinator node and each worker node.

Change hard limits with ulimit

Make sure each node supports a hard limit in ulimit for the HRDBMS userid for max processes of 100000. We will never get anywhere near that, but I just picked a really high number.

hparms

On each node you also need to have a file called hparms in the install directory. This file specifies the value for system parameters that you wish to override from the defaults. There are a few that you will definitely need to override. In a simple installation, you can get by with having this file be identical on all nodes. In more complex installations, that might not work. The format for the file is keyword=value, with one keyword per line and no space between the keyword, the equals sign, and the value.

Starting HRDBMS

Log on to any of the coordinator nodes as the HRDBMS user. Go to the install directory for that node. Issue the following commands...

ulimit -n <your max_open_files value>
ulimit -u 100000
nohup java -XX:+UseG1GC -XX:G1HeapRegionSize=32m -XX:+ParallelRefProcEnabled -XX:MaxDirectMemorySize=327772160000 -XX:+AggressiveOpts -Xmx<your heap size> -Xms<your heap size> -Xss<your stack size> -cp HRDBMS.jar:. com.exascale.managers.HRDBMSWorker 0 &

Each node will write a debug log in its install directory called hrdbms.log.

What to do next?

  • See here for all parameters that you can set in the hparms file
  • See here for how to use the command line interface of HRDBMS
  • See here for how to use the JDBC driver of HRDBMS

Clone this wiki locally