1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-01 06:46:55 +03:00
This commit is contained in:
David Hill
2018-09-19 14:01:08 -05:00
parent 9e64034347
commit 45b20b4a9a
6 changed files with 1145 additions and 659 deletions

View File

@ -63,10 +63,18 @@ if [ $cloud = "amazon-ec2" ] || [ $cloud = "amazon-vpc" ]; then
if [ $module = "pm" ]; then
if test -f $COLUMNSTORE_INSTALL_DIR/local/etc/pm1/fstab ; then
echo "Setup fstab on Module"
touch /etc/fstab
rm -f /etc/fstab.columnstoreSave
cp /etc/fstab /etc/fstab.columnstoreSave
cat $COLUMNSTORE_INSTALL_DIR/local/etc/pm1/fstab >> /etc/fstab
if [ $user = "root" ]; then
touch /etc/fstab
rm -f /etc/fstab.columnstoreSave
cp /etc/fstab /etc/fstab.columnstoreSave
cat $COLUMNSTORE_INSTALL_DIR/local/etc/pm1/fstab >> /etc/fstab
else
sudo touch /etc/fstab
sudo chmod 666 /etc/fstab
sudo rm -f /etc/fstab.columnstoreSave
sudo cp /etc/fstab /etc/fstab.columnstoreSave
sudo cat $COLUMNSTORE_INSTALL_DIR/local/etc/pm1/fstab >> /etc/fstab
fi
fi
fi
fi
@ -85,8 +93,13 @@ if [ $module = "um" ]; then
echo "Setup UM Volume Mount"
device=`$COLUMNSTORE_INSTALL_DIR/bin/getConfig Installation UMVolumeDeviceName$mid`
mkdir -p $COLUMNSTORE_INSTALL_DIR/mysql/db > /dev/null 2>&1
mount $device $COLUMNSTORE_INSTALL_DIR/mysql/db -t ext2 -o noatime,nodiratime,noauto
chown mysql:mysql -R $COLUMNSTORE_INSTALL_DIR/mysql > /dev/null 2>&1
if [ $user = "root" ]; then
mount $device $COLUMNSTORE_INSTALL_DIR/mysql/db -t ext2 -o noatime,nodiratime,noauto
chown mysql:mysql -R $COLUMNSTORE_INSTALL_DIR/mysql > /dev/null 2>&1
else
sudo mount $device $COLUMNSTORE_INSTALL_DIR/mysql/db -t ext2 -o noatime,nodiratime,noauto,user
sudo chown $user:$user -R $COLUMNSTORE_INSTALL_DIR/mysql > /dev/null 2>&1
fi
fi
fi
fi
@ -148,18 +161,16 @@ if [ $module = "um" ] || ( [ $module = "pm" ] && [ $PMwithUM = "y" ] ) || [ $Ser
fi
fi
if [ $user == "root" ]; then
$COLUMNSTORE_INSTALL_DIR/bin/syslogSetup.sh check > /tmp/syslogSetup-check.log 2>&1
if [ $? -ne 0 ]; then
# try setup again
$COLUMNSTORE_INSTALL_DIR/bin/syslogSetup.sh install > /tmp/syslogSetup-install.log 2>&1
if [ $? -ne 0 ]; then
echo "WARNING: syslogSetup.sh check failed: check /tmp/syslogSetup-check.log"
exit 2
fi
fi
$COLUMNSTORE_INSTALL_DIR/bin/syslogSetup.sh check > /tmp/syslogSetup-check.log 2>&1
if [ $? -ne 0 ]; then
# try setup again
$COLUMNSTORE_INSTALL_DIR/bin/syslogSetup.sh install > /tmp/syslogSetup-install.log 2>&1
if [ $? -ne 0 ]; then
echo "WARNING: syslogSetup.sh check failed: check /tmp/syslogSetup-check.log"
exit 2
fi
fi
#setup rc.local
if [ -f /etc/rc.d ]; then
RCFILE=/etc/rc.d/rc.local
@ -168,9 +179,40 @@ else
fi
touch $RCFILE
echo "add deadline to rc.local"
if [ $module = "um" ]; then
if [ $user = "root" ]; then
echo "for scsi_dev in \`mount | awk '/mnt\\/tmp/ {print $1}' | awk -F/ '{print $3}' | sed 's/[0-9]*$//'\`; do" >> $RCFILE
echo "echo deadline > /sys/block/$scsi_dev/queue/scheduler" >> $RCFILE
echo "done" >> $RCFILE
else
sudo echo "for scsi_dev in \`mount | awk '/mnt\\/tmp/ {print $1}' | awk -F/ '{print $3}' | sed 's/[0-9]*$//'\`; do" >> $RCFILE
sudo echo "echo deadline > /sys/block/$scsi_dev/queue/scheduler" >> $RCFILE
sudo echo "done" >> $RCFILE
fi
else
if [ $user = "root" ]; then
echo "for scsi_dev in \`mount | awk '/mnt\\/tmp/ {print $1}' | awk -F/ '{print $3}' | sed 's/[0-9]*$//'\`; do" >> $RCFILE
echo "echo deadline > /sys/block/$scsi_dev/queue/scheduler" >> $RCFILE
echo "done" >> $RCFILE
echo "for scsi_dev in \`mount | awk '/columnstore\\/data/ {print $1}' | awk -F/ '{print $3}' | sed 's/[0-9]*$//'\`; do" >> $RCFILE
echo "echo deadline > /sys/block/$scsi_dev/queue/scheduler" >> $RCFILE
echo "done" >> $RCFILE
else
sudo echo "for scsi_dev in \`mount | awk '/mnt\\/tmp/ {print $1}' | awk -F/ '{print $3}' | sed 's/[0-9]*$//'\`; do" >> $RCFILE
sudo echo "echo deadline > /sys/block/$scsi_dev/queue/scheduler" >> $RCFILE
sudo echo "done" >> $RCFILE
sudo echo "for scsi_dev in \`mount | awk '/columnstore\\/data/ {print $1}' | awk -F/ '{print $3}' | sed 's/[0-9]*$//'\`; do" >> $RCFILE
sudo echo "echo deadline > /sys/block/$scsi_dev/queue/scheduler" >> $RCFILE
sudo echo "done" >> $RCFILE
fi
fi
if [ $user != "root" ]; then
echo "uncomment runuser in rc.local"
sed -i -e 's/#MCS//g' /etc/rc.d/rc.local >/dev/null 2>&1
sudo sed -i -e 's/#sudo runuser/sudo runuser/g' $RCFILE >/dev/null 2>&1
fi
echo "!!!Module Installation Successfully Completed!!!"

View File

@ -8,6 +8,10 @@ prefix=/usr/local
installdir=$prefix/mariadb/columnstore
rpmmode=install
user=`whoami 2>/dev/null`
SUDO=" "
if [ $user != "root" ]; then
SUDO="sudo "
fi
quiet=0
@ -89,53 +93,53 @@ if [ -f libstdc++.so.6.0.14 ]; then
fi
# softlink for libperl.sp, used by cplogger
ln -s /usr/lib64/perl5/CORE/libperl.so /usr/lib64/libperl.so >/dev/null 2>&1
$SUDO ln -s /usr/lib64/perl5/CORE/libperl.so /usr/lib64/libperl.so >/dev/null 2>&1
#setup profile files
profileFileAlias=/etc/profile.d/columnstoreAlias.sh
profileFileEnv=/etc/profile.d/columnstoreEnv.sh
if [ $installdir != "/usr/local/mariadb/columnstore" ]; then
sed -i -e s@/usr/local/mariadb/columnstore@$installdir@g $installdir/bin/columnstoreAlias
fi
if [ $user != "root" ]; then
profileFile=$prefix/.bash_profile
if [ ! -f ${profileFile}_backup ]; then
cp $profileFile ${profileFile}_backup
fi
egrep -qs 'MariaDB Columnstore Non-Root Environment Variables' ${profileFile}
sudo rm -f $profileFileEnv
sudo rm -f $profileFileAlias
sudo touch $profileFileEnv
sudo chmod 666 $profileFileEnv
egrep -qs 'MariaDB Columnstore Non-Root' ${profileFileEnv}
rc1=$?
if [ $rc1 -ne 0 ]; then
echo " " >> ${profileFile}
echo "# MariaDB Columnstore Non-Root Environment Variables" >> ${profileFile}
echo "export COLUMNSTORE_INSTALL_DIR=$COLUMNSTORE_INSTALL_DIR" >> ${profileFile}
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$COLUMNSTORE_INSTALL_DIR/lib:$COLUMNSTORE_INSTALL_DIR/mysql/lib" >> ${profileFile}
sudo echo " " >> ${profileFileEnv}
sudo echo "# MariaDB Columnstore Non-Root Environment Variables" >> ${profileFileEnv}
sudo echo "export COLUMNSTORE_INSTALL_DIR=$COLUMNSTORE_INSTALL_DIR" >> ${profileFileEnv}
sudo echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$COLUMNSTORE_INSTALL_DIR/lib:$COLUMNSTORE_INSTALL_DIR/mysql/lib" >> ${profileFileEnv}
. ${profileFileEnv}
fi
egrep -qs 'MariaDB Columnstore Non-Root Alias Variables' ${profileFile}
rc1=$?
if [ $rc1 -ne 0 ]; then
echo " " >> ${profileFile}
echo "# MariaDB Columnstore Non-Root Alias Variables" >> ${profileFile}
cat $installdir/bin/columnstoreAlias >> ${profileFile}
fi
#source the file
. ${profileFile}
sudo /bin/cp -f $installdir/bin/columnstoreAlias $profileFileAlias
sudo chmod 666 $profileFileAlias
else
/bin/cp -f $installdir/bin/columnstoreAlias /etc/profile.d/columnstoreAlias.sh
chmod 644 /etc/profile.d/columnstoreAlias.sh >/dev/null 2>&1
/bin/cp -f $installdir/bin/columnstoreAlias $profileFileAlias
chmod 644 $profileFileAlias
fi
cd /
test -d /var/log/mariadb || mkdir /var/log/mariadb >/dev/null 2>&1
test -d /var/log/mariadb/columnstore || mkdir /var/log/mariadb/columnstore >/dev/null 2>&1
test -d /var/log/mariadb || $SUDO mkdir /var/log/mariadb >/dev/null 2>&1
test -d /var/log/mariadb/columnstore || $SUDO mkdir /var/log/mariadb/columnstore >/dev/null 2>&1
if [ $user != "root" ]; then
$SUDO chmod -R 777 /var/log/mariadb >/dev/null 2>&1
$SUDO chown -R $user:$user /var/log/mariadb >/dev/null 2>&1
fi
test -d /var/log/mariadb/columnstore/archive || mkdir /var/log/mariadb/columnstore/archive >/dev/null 2>&1
test -d /var/log/mariadb/columnstore/corefiles || mkdir /var/log/mariadb/columnstore/corefiles >/dev/null 2>&1
test -d /var/log/mariadb/columnstore/trace || mkdir /var/log/mariadb/columnstore/trace >/dev/null 2>&1
test -h /var/log/mariadb/columnstore/data && rm -f /var/log/mariadb/columnstore/data
chmod 755 /var/log/mariadb/columnstore/corefiles > /dev/null 2>&1
# make sure trace dir is world-writable and sticky
test -d $installdir/data || mkdir $installdir/data
test -d $installdir/data1 || mkdir $installdir/data1
@ -158,8 +162,13 @@ rm -f $installdir/data/bulk/tmpjob/* >/dev/null 2>&1
#create columnstore temp file directory
mkdir -p /tmp/columnstore_tmp_files >/dev/null 2>&1
#setup core file directory and link
mkdir /var/log/mariadb/columnstore/corefiles > /dev/null 2>&1
chmod 777 /var/log/mariadb/columnstore/corefiles > /dev/null 2>&1
#create mount directories
mkdir /mnt/tmp > /dev/null 2>&1
mkdir /var/log/mariadb/columnstore/data/archive > /dev/null 2>&1
# remove mysql archive log
test -d $installdir/mysql/db || mkdir -p $installdir/mysql/db
@ -168,6 +177,7 @@ rm -rf $installdir/mysql/db/columnstore_log_archive > /dev/null 2>&1
# delete Columnstore shared memory segments
$installdir/bin/clearShm > /dev/null 2>&1
systemctl=`which systemctl 2>/dev/null`
#check and create rc.local file if missing
if [ -f /etc/rc.d ]; then
@ -180,16 +190,22 @@ if [ $user = "root" ]; then
touch $RCFILE
chmod +x $RCFILE
else
printf '%s\n' '#!/bin/bash' "#" | tee -a $RCFILE > /dev/null 2>&1
$SUDO touch $RCFILE
$SUDO chmod 777 $RCFILE
$SUDO printf '%s\n' '#!/bin/bash' "#" | $SUDO tee -a $RCFILE > /dev/null 2>&1
if [ -n "$systemctl" ]; then
$SUDO systemctl start rc-local >/dev/null 2>&1
$SUDO systemctl enable rc-local >/dev/null 2>&1
fi
fi
if [ $user = "root" ]; then
#setup the columnstore service script
rm -f /etc/init.d/columnstore >/dev/null 2>&1
rm -f /etc/init.d/mysql-Columnstore >/dev/null 2>&1
rm -f /etc/default/columnstore
systemctl=`which systemctl 2>/dev/null`
#setup the columnstore service script
rm -f /etc/init.d/columnstore >/dev/null 2>&1
rm -f /etc/init.d/mysql-Columnstore >/dev/null 2>&1
if [ $user = "root" ]; then
if [ -n "$systemctl" ]; then
chmod 644 $installdir/bin/columnstore.service
@ -219,46 +235,30 @@ fi
if [ $user = "root" ]; then
$installdir/bin/syslogSetup.sh install > /tmp/syslog_install.log 2>&1
#check if MariaDB Columnstore system logging was setup
cat /tmp/syslog_install.log | grep 'No System Logging' >/dev/null 2>&1
if [ $? -eq 0 ]; then
cat /tmp/syslog_install.log
fi
rm -f /etc/default/columnstore
else
sed -i -e s@/usr/local/mariadb/columnstore@$installdir@g $installdir/bin/columnstore.def
sed -i -e s@/usr/local/mariadb/columnstore@$installdir@g $installdir/bin/columnstoreLogRotate
cp $installdir/bin/columnstore.def /etc/default/columnstore
$SUDO cp $installdir/bin/columnstore.def /etc/default/columnstore
sed -i -e s@prefix=/home/guest@prefix=$prefix@g $installdir/bin/*
chown $user:$user $installdir/etc/Columnstore.xml
echo ""
echo "NOTE: For non-root install, you will need to run the following command as root user to"
echo " setup the MariaDB ColumnStore System Logging"
echo ""
echo " $installdir/bin/syslogSetup.sh --installdir=$installdir --user=$user install"
echo ""
$SUDO chmod 777 /tmp
$installdir/bin/syslogSetup.sh --installdir=$installdir install > /tmp/syslog_install.log 2>&1
$SUDO chown $user:$user $installdir/etc/Columnstore.xml
$SUDO mkdir /var/lock/subsys > /dev/null 2>&1
$SUDO chmod 777 /var/lock/subsys > /dev/null 2>&1
$SUDO rm -f /var/lock/subsys/mysql-Columnstore
$SUDO chmod 666 /etc/fstab
fi
#determine lock file directory
# Lock directory for root user
lockdir='/var/lock/subsys'
if [ $user != "root" ];then
# Lock directory for non-root user
lockdir=$prefix/.lock
#check if MariaDB Columnstore system logging was setup
cat /tmp/syslog_install.log | grep 'No System Logging' >/dev/null 2>&1
if [ $? -eq 0 ]; then
cat /tmp/syslog_install.log
fi
$installdir/bin/setConfig -d Installation LockFileDirectory $lockdir
mkdir $lockdir >/dev/null 2>&1
rm -f $lockdir/mysql-Columnstore
rm -f $lockdir/columnstore
#backup copy of Alarm Config File
/bin/cp -f $installdir/etc/AlarmConfig.xml $installdir/etc/AlarmConfig.xml.installSave > /dev/null 2>&1
@ -275,7 +275,6 @@ if [ $user = "root" ]; then
else
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$installdir/lib $installdir/bin/cplogger -i 19 "***** MariaDB Columnstore Installed *****"
fi
#setup hadoop
hadoop=`which hadoop 2>/dev/null`
if [ -z "$hadoop" ]; then