Note
This page guides how to start LightningDB on CentOS manually. In case of using AWS EC2 Instance, please use Installation
1. Optimizing System Parameters¶
(1) Edit /etc/sysctl.conf
like following
...
vm.swappiness = 0
vm.overcommit_memory = 1
vm.overcommit_ratio = 50
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 32768 65535
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_max_syn_backlog = 4096
net.core.somaxconn = 65535
...
Tip
In case of application in runtime, use sudo sysctl -p
(2) Edit /etc/security/limits.conf
...
* soft core -1
* soft nofile 262144
* hard nofile 262144
* soft nproc 131072
* hard nproc 131072
[account name] * soft nofile 262144
[account name] * hard nofile 262144
[account name] * soft nproc 131072
[account name] * hard nproc 131072
...
Tip
In case of application in runtime, use ulimit -n 65535, ulimit -u 131072
(3) Edit /etc/fstab
Remove SWAP Partition (Comment out SWAP partition with using #
and reboot)
...
[[/dev/mapper/centos-swap]] swap swap defaults 0 0
...
Tip
In case of application in runtime, use swapoff -a
(4) /etc/init.d/disable-transparent-hugepages
root@fbg01 ~] cat /etc/init.d/disable-transparent-hugepages
#!/bin/bash
### BEGIN INIT INFO
# Provides: disable-transparent-hugepages
# Required-Start: $local_fs
# Required-Stop:
# X-Start-Before: mongod mongodb-mms-automation-agent
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Disable Linux transparent huge pages
# Description: Disable Linux transparent huge pages, to improve
# database performance.
### END INIT INFO
case $1 in
start)
if [ -d /sys/kernel/mm/transparent_hugepage ]; then
thp_path=/sys/kernel/mm/transparent_hugepage
elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then
thp_path=/sys/kernel/mm/redhat_transparent_hugepage
else
return 0
fi
echo 'never' > ${thp_path}/enabled
echo 'never' > ${thp_path}/defrag
re='^[0-1]+$'
if [[ $(cat ${thp_path}/khugepaged/defrag) =~ $re ]]
then
# RHEL 7
echo 0 > ${thp_path}/khugepaged/defrag
else
# RHEL 6
echo 'no' > ${thp_path}/khugepaged/defrag
fi
unset re
unset thp_path
;;
esac
[root@fbg01 ~]
[root@fbg01 ~]
[root@fbg01 ~] chmod 755 /etc/init.d/disable-transparent-hugepages
[root@fbg01 ~] chkconfig --add disable-transparent-hugepages
2. Setup Prerequisites¶
- bash, unzip, ssh
- JDK 1.8 or higher
- gcc 4.8.5 or higher
- glibc 2.17 or higher
- epel-release
sudo yum install epel-release
- boost, boost-thread, boost-devel
sudo yum install boost boost-thread boost-devel
- Exchange SSH Key
For all servers that LightningDB will be deployed, SSH key should be exchanged.
ssh-keygen -t rsa
chmod 0600 ~/.ssh/authorized_keys
cat .ssh/id_rsa.pub | ssh {server name} "cat >> .ssh/authorized_keys"
- Intel MKL library
(1) Intel MKL 2019 library install
- Go to the website: https://software.intel.com/en-us/mkl/choose-download/macos
- Register and login
- Select product named "Intel * Math Kernel Library for Linux" or "Intel * Math Kernel Library for Mac" from the select box "Choose Product to Download"
- Choose a Version "2019 Update 2" and download
- Unzip the file and execute the install.sh file with root account or (sudo command)
sudo ./install.sh
- Choose custom install and configure the install directory /opt/intel (with sudo, /opt/intel is the default installation path, just confirm it)
matthew@fbg05 /opt/intel $ pwd
/opt/intel
matthew@fbg05 /opt/intel $ ls -alh
합계 0
drwxr-xr-x 10 root root 307 3월 22 01:34 .
drwxr-xr-x. 5 root root 83 3월 22 01:34 ..
drwxr-xr-x 6 root root 72 3월 22 01:35 .pset
drwxr-xr-x 2 root root 53 3월 22 01:34 bin
lrwxrwxrwx 1 root root 28 3월 22 01:34 compilers_and_libraries -> compilers_and_libraries_2019
drwxr-xr-x 3 root root 19 3월 22 01:34 compilers_and_libraries_2019
drwxr-xr-x 4 root root 36 1월 24 23:04 compilers_and_libraries_2019.2.187
drwxr-xr-x 6 root root 63 1월 24 22:50 conda_channel
drwxr-xr-x 4 root root 26 1월 24 23:01 documentation_2019
lrwxrwxrwx 1 root root 33 3월 22 01:34 lib -> compilers_and_libraries/linux/lib
lrwxrwxrwx 1 root root 33 3월 22 01:34 mkl -> compilers_and_libraries/linux/mkl
lrwxrwxrwx 1 root root 29 3월 22 01:34 parallel_studio_xe_2019 -> parallel_studio_xe_2019.2.057
drwxr-xr-x 5 root root 216 3월 22 01:34 parallel_studio_xe_2019.2.057
drwxr-xr-x 3 root root 16 3월 22 01:34 samples_2019
lrwxrwxrwx 1 root root 33 3월 22 01:34 tbb -> compilers_and_libraries/linux/tbb
(2) Intel MKL 2019 library environment settings
- Append the following statement into ~/.bashrc
# INTEL MKL enviroment variables for ($MKLROOT, can be checked with the value export | grep MKL)
source /opt/intel/mkl/bin/mklvars.sh intel64
- Apache Hadoop 2.6.0 (or higher)
- Apache Spark 2.3 on Hadoop 2.6
- ntp For clock synchronization between servers over packet-switched, variable-latency data networks.
- Settings for core dump(Optional)
(1) INSTALLING ABRT AND STARTING ITS SERVICES
(2) Set core dump file size
ulimit -c unlimited
(3) Change the path of core dump files
echo /tmp/core.%p > /proc/sys/kernel/core_pattern
3. Session configuration files¶
'~/.bashrc'
Add followings
# .bashrc
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
HADOOP_HOME=/home/nvkvs/hadoop
HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
SPARK_HOME=/home/nvkvs/spark
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$HOME/sbin
export PATH SPARK_HOME HADOOP_HOME HADOOP_CONF_DIR YARN_CONF_DIR
alias cfc='source ~/.use_cluster'
4. Install and Start LightningDB¶
With LTCLI provided by LightningDB, users can deploy and use LightningDB.
Install LTCLI with the following command.
$ pip install ltcli --upgrade --user
After installation is completed, start LTCLI with Commands