You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-10-20 00:09:21 +03:00
217 lines
5.1 KiB
Bash
Executable File
217 lines
5.1 KiB
Bash
Executable File
#!/bin/bash
|
|
if [ -z "$COLUMNSTORE_INSTALL_DIR" ]; then
|
|
COLUMNSTORE_INSTALL_DIR=/usr/local/mariadb/columnstore
|
|
fi
|
|
|
|
export COLUMNSTORE_INSTALL_DIR=$COLUMNSTORE_INSTALL_DIR
|
|
|
|
# Returns 0 if the specified string contains the specified substring,
|
|
# otherwise returns 1.
|
|
strContains() {
|
|
str="$1"
|
|
sub="$2"
|
|
if test "${str#*$sub}" != "$str"; then
|
|
return 0 # $sub is in $str
|
|
else
|
|
return 1 # $sub is not in $str
|
|
fi
|
|
}
|
|
|
|
|
|
# Determine where Hadoop is installed
|
|
hadoop=`which hadoop 2>/dev/null`
|
|
if [ -z $hadoop ]; then
|
|
echo "Hadoop package is not installed and detected by the 'which' command"
|
|
echo "Please Install an Hadoop Package"
|
|
return 1
|
|
fi
|
|
|
|
tmppath=$hadoop
|
|
while true; do
|
|
path=`readlink $tmppath`
|
|
if [ -z $path ]; then
|
|
hadooppath=$tmppath
|
|
break
|
|
fi
|
|
|
|
tmppath=$path
|
|
done
|
|
|
|
strContains "$hadooppath" "bin/hadoop"
|
|
if [ $? -eq 1 ]; then
|
|
echo "Hadoop binary path not located in $hadooppath"
|
|
echo "Please Contact InfiniDB Customer Support. "
|
|
echo "Exiting"
|
|
return 1
|
|
fi
|
|
|
|
# get hadoop base directory
|
|
basepath=$(dirname $hadooppath)
|
|
basepath=$(dirname $basepath)
|
|
|
|
# get hadoop library directory
|
|
find $basepath -name libhdfs.so.0.0.0 > /tmp/libhds.txt
|
|
libpath=`head -n1 /tmp/libhds.txt`
|
|
if [ -z $libpath ]; then
|
|
echo "Library libhdfs.so.0.0.0 not found in $libpath"
|
|
echo "Please Contact InfiniDB Customer Support. "
|
|
echo "Exiting"
|
|
return 1
|
|
fi
|
|
|
|
libpath=$(dirname $libpath)
|
|
|
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$libpath
|
|
|
|
#get Hadoop libexec path
|
|
find $basepath -name hadoop-config.sh > /tmp/config.txt
|
|
|
|
# if libexec is in there, go get it
|
|
libexec=`grep libexec /tmp/config.txt`
|
|
if [ ! -z $libexec ]; then
|
|
libexecpath=`grep libexec /tmp/config.txt | head -1`
|
|
else # use the top one in the file
|
|
libexecpath=`head -n1 /tmp/config.txt`
|
|
fi
|
|
|
|
if [ ! -f $libexecpath ]; then
|
|
echo "hadoop-config.sh doesn't exist in $basepath"
|
|
echo "Please Contact InfiniDB Customer Support. "
|
|
echo "Exiting"
|
|
return 1
|
|
fi
|
|
|
|
HADOOP_LIBEXEC_DIR=$(dirname $libexecpath)
|
|
|
|
# Detemine JAVA_HOME
|
|
find $libpath -name bigtop-detect-javahome > /tmp/bigtop.txt
|
|
bigtop=`head -n1 /tmp/bigtop.txt`
|
|
if [ ! -z $bigtop ]; then
|
|
. $bigtop
|
|
fi
|
|
|
|
|
|
# if JAVA_HOME is set, check if its valid
|
|
if [ ! -z $JAVA_HOME ]; then
|
|
javalibfile=`find $JAVA_HOME -name libjvm.so`
|
|
|
|
find $JAVA_HOME -name libjvm.so > /tmp/java.txt
|
|
javalibfile=`head -n1 /tmp/java.txt`
|
|
if [ -z $javalibfile ]; then
|
|
# JAVA_HOME is invalid, clear it
|
|
export JAVA_HOME=
|
|
fi
|
|
fi
|
|
|
|
# attempt to find java, if its not setup yet
|
|
if [ -z $JAVA_HOME ]; then
|
|
for candidate in \
|
|
/usr/lib/j2sdk1.6-sun \
|
|
/usr/lib/jvm/java-6-sun \
|
|
/usr/lib/jvm/java-1.6.0-sun-1.6.0.* \
|
|
/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/ \
|
|
/usr/lib/jvm/j2sdk1.6-oracle \
|
|
/usr/lib/jvm/j2sdk1.6-oracle/jre \
|
|
/usr/java/jdk1.6* \
|
|
/usr/java/jre1.6* \
|
|
/usr/java/jdk1.7* \
|
|
/usr/java/jre1.7* \
|
|
/usr/lib/jvm/j2sdk1.7-oracle \
|
|
/usr/lib/jvm/j2sdk1.7-oracle/jre \
|
|
/Library/Java/Home \
|
|
/usr/java/default \
|
|
/usr/lib/jvm/default-java \
|
|
/usr/lib/jvm/java-openjdk \
|
|
/usr/lib/jvm/jre-openjdk \
|
|
/usr/lib/jvm/java-1.7.0-openjdk* \
|
|
/usr/lib/jvm/java-7-openjdk* \
|
|
/usr/lib/jvm/java-7-oracle* \
|
|
/usr/lib/jvm/java-1.6.0-openjdk \
|
|
/usr/lib/jvm/java-1.6.0-openjdk-* \
|
|
/usr/lib/jvm/jre-1.6.0-openjdk* ; do
|
|
if [ -e $candidate/bin/java ]; then
|
|
export JAVA_HOME=$candidate
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if [ ! -d $JAVA_HOME ]; then
|
|
echo "Java Home directory doesn't exist"
|
|
echo "Please Contact InfiniDB Customer Support. "
|
|
echo "Exiting"
|
|
return 1
|
|
fi
|
|
|
|
find $JAVA_HOME -name libjvm.so > /tmp/java.txt
|
|
javalibfile=`head -n1 /tmp/java.txt`
|
|
if [ -z $javalibfile ]; then
|
|
echo "Java Library libjvm.so doesn't exist in $JAVA_HOME"
|
|
echo "Please Contact InfiniDB Customer Support. "
|
|
echo "Exiting"
|
|
return 1
|
|
fi
|
|
|
|
javalibpath=$(dirname $javalibfile)
|
|
|
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$javalibpath
|
|
export JAVA_HOME=$JAVA_HOME
|
|
|
|
#set in config file
|
|
$COLUMNSTORE_INSTALL_DIR/bin/setConfig -d Installation JavaHome $JAVA_HOME
|
|
$COLUMNSTORE_INSTALL_DIR/bin/setConfig -d Installation JavaPath $javalibpath
|
|
|
|
#run hadoop-config
|
|
. $HADOOP_LIBEXEC_DIR/hadoop-config.sh
|
|
|
|
#echo "Using"
|
|
#echo "Hadoop bash path " $basepath
|
|
#echo "Hadoop library path " $libpath
|
|
#echo "Hadoop execlib path " $HADOOP_LIBEXEC_DIR
|
|
#echo "java_home " $JAVA_HOME
|
|
#echo "java_path " $javalibpath
|
|
|
|
|
|
# CLASSPATH initially contains $HADOOP_CONF_DIR
|
|
CLASSPATH="${HADOOP_CONF_DIR}"
|
|
CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar
|
|
|
|
# so that filenames w/ spaces are handled correctly in loops below
|
|
IFS=
|
|
|
|
# tarball layout
|
|
if [ -d "$HADOOP_HOME/webapps" ]; then
|
|
CLASSPATH=${CLASSPATH}:$HADOOP_HOME
|
|
fi
|
|
|
|
for f in $HADOOP_HOME/hadoop-core-*.jar; do
|
|
CLASSPATH=${CLASSPATH}:$f;
|
|
done
|
|
|
|
for f in $HADOOP_HOME/lib/*.jar; do
|
|
CLASSPATH=${CLASSPATH}:$f;
|
|
done
|
|
|
|
if [ -d "$HADOOP_HOME/build/ivy/lib/Hadoop/common" ]; then
|
|
for f in $HADOOP_HOME/build/ivy/lib/Hadoop/common/*.jar; do
|
|
CLASSPATH=${CLASSPATH}:$f;
|
|
done
|
|
fi
|
|
|
|
for f in $HADOOP_HOME/lib/jsp-2.1/*.jar; do
|
|
CLASSPATH=${CLASSPATH}:$f;
|
|
done
|
|
|
|
for f in $HADOOP_HOME/hadoop-tools-*.jar; do
|
|
TOOL_PATH=${TOOL_PATH}:$f;
|
|
done
|
|
for f in $HADOOP_HOME/build/hadoop-tools-*.jar; do
|
|
TOOL_PATH=${TOOL_PATH}:$f;
|
|
done
|
|
|
|
# restore ordinary behaviour
|
|
unset IFS
|
|
|
|
export CLASSPATH=$CLASSPATH
|
|
|