1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-10-20 00:09:21 +03:00
Files
mariadb-columnstore-engine/utils/idbhdfs/hdfs-12/setenv-hdfs-12
david hill 468a971517 name change
2016-08-15 13:39:00 -05:00

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