How to Install RapidsDB
Basic Information
Hardware
Minimum | 4 cpu + 32GB memory + 100GB storage |
Recommend | 8 cpu + 128GB memory + 1TB storage |
Operating System
CentOS 7.7 X86_64 |
File system XFS |
Node info
Node Name | Public IP | Private IP | Node Role |
---|---|---|---|
node1 | 18.144.169.18 | 172.31.4.129 | DQC |
node2 | 54.177.78.12 | 172.31.5.178 | DQE |
node3 | 54.193.208.14 | 172.31.12.199 | DQE |
Port info
2888 |
3888 |
2181 |
4333 |
4334 |
22 |
Installation
Setup file system
#mount your data volume to /opt or
#if you using / as data storage then
mkdir /opt
sudo chown centos:centos /opt
Disable selinux and upgrade system (repeat on each node)
ssh -vvi ~/.ssh/rapidsdb_ssh.pem centos@node_ip
sudo yum -y update
sudo vi /etc/sysconfig/selinux
#set selinux to disable
SELINUX=disabled
#need reboot
sudo reboot
Map each node (repeat on each node)
ssh -vvi ~/.ssh/rapidsdb_ssh.pem centos@node_ip
sudo vi /etc/hosts
#add at bottom
172.31.4.129 node1
172.31.5.178 node2
172.31.12.199 node3
sudo vi /etc/hostname
#replace the content to node name on each node
node name
sudo reboot
Setup keyless ssh login on each node
#run in each node
ssh-keygen -q -m PEM -t rsa -b 4096
cd ~/.ssh/
cat id_rsa.pub
#copy the cat result into authorized_keys on each node
vi authorized_keys
#verify on each node
ssh node1
ssh node2
ssh node3
Close huge page cache
sudo vi /etc/rc.d/rc.local
#add code
for f in /sys/kernel/mm/*transparent_hugepage/enabled; do
if test -f $f; then echo never > $f; fi
done
for f in /sys/kernel/mm/*transparent_hugepage/defrag; do
if test -f $f; then echo never > $f; fi
done
sudo chmod +x /etc/rc.d/rc.local
sudo reboot
Setup NTP
sudo yum -y install ntp net-tools
#must stop chronyd first , otherwise ntpd will not able to auto start
sudo systemctl disable chronyd.service
sudo systemctl start ntpd.service
sudo systemctl enable ntpd.service
ntpstat
Upload install package (repeat on each node)
scp -i ~/.ssh/rapidsdb_ssh.pem jdk-8u171-linux-x64.tar.gz centos@node_ip:/home/centos
scp -i ~/.ssh/rapidsdb_ssh.pem zookeeper-3.4.12.tar.gz centos@node_ip:/home/centos
scp -i ~/.ssh/rapidsdb_ssh.pem rdp-installer-R4.2.3.3-ge674a16.run centos@node_ip:/home/centos
scp -i ~/.ssh/rapidsdb_ssh.pem rapids.lic centos@node_ip:/home/centos
Install JDK (repeat on each node)
sudo mkdir -p /usr/local/java
cd /usr/local/java
sudo cp -fr /home/centos/jdk* .
sudo tar -vxzf jdk-8u171-linux-x64.tar.gz
sudo vi /etc/profile
#add
export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
cd /usr/local/java/jdk1.8.0_171
source /etc/profile
java -version
sudo yum install java
Kernel config
sudo vi /etc/sysctl.conf
#add
fs.file-max = 3145680
fs.epoll.max_user_instances = 8192
fs.inotify.max_user_watches = 16384
vm.max_map_count = 1048560
sudo sysctl -a
sudo vi /etc/security/limits.conf
#add
soft nproc 1045680
hard nproc 1045680
soft nofile 1045680
hard nofile 1045680
sudo vi /etc/security/limits.d/20-nproc.conf
#add
soft nproc 1045680
hard nproc 1045680
soft nofile 1045680
hard nofile 1045680
Install zookeeper (only on DQC node)
mkdir -p /opt/zookeeper/data
cd /opt/zookeeper/
cp -fr /home/centos/zookeeper-3.4.12.tar.gz .
tar -vxzf zookeeper-3.4.12.tar.gz
cd /opt/zookeeper/zookeeper-3.4.12/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
#add
server.1=172.31.4.129:2888:3888
cd /opt/zookeeper/zookeeper-3.4.12/bin
./zkServer.sh start
#check log
cat zookeeper.out
sudo vi /usr/lib/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper
After=syslog.target
[Service]
SyslogIdentifier=zookeeper
TimeoutStartSec=10min
Type=forking
ExecStart=/opt/zookeeper/zookeeper-3.4.12/bin/zkServer.sh start
ExecStop=/opt/zookeeper/zookeeper-3.4.12/bin/zkServer.sh stop
[Install]
WantedBy=multi-user.target
sudo systemctl enable zookeeper.service
Install RapidsDB cluster (repeat on each node)
mkdir -p /opt/rdp
cd /opt/rdp/
cp -fr /home/centos/rdp-installer-R4.2.3.3-ge674a16.run .
chmod 777 rdp-installer-R4.2.3.3-ge674a16.run
./rdp-installer-R4.2.3.3-ge674a16.run
cd /opt/rdp/current/cfg
vi zk.config.sample
#change to DQC node internal ip
nodeList = node_1_internal_ip:2181
cluster.config.sample:
{
"commonNodeConfig": {
"enabled" : true,
"role" : "DQE",
"clientPort" : 4333,
"clusterPort" : 4334,
"seEnabled" : false,
"seArgs" : "",
"sshUsername" : "centos",
"sshPathToIdentityFile" : "~/.ssh/id_rsa",
"installationDir" : "/opt/rdp",
"workingDir" : "/opt/rdp/current",
"startupCommand" : "./startDqx.sh",
"shutdownCommand" : "./stopDqx.sh"
},
"nodeConfig": [
{
"name" : "node1",
"role" : "DQC",
"hostname" : "node_1_internal_ip"
},
{
"name" : "node2",
"hostname" : "node_2_internal_ip"
},
{
"name" : "node3",
"hostname" : "node_3_internal_ip"
}
]
}
cd /opt/rdp
cp current/cfg/zk.config.sample zk.config
cp current/cfg/cluster.config.sample cluster.config
cp /home/centos/rapids.lic .
chmod +x rapids.lic
Start RapidsDB cluster (ssh into DQC node and run below)
cd /opt/rdp/current
./bootstrapper.sh -a install -i ../rdp-installer-R4.2.3.3-ge674a16.run -l ../rapids.lic
./bootstrapper.sh -a start