blob: c267fb89ba47d99490f56af3da0cea6d9a50bea5 [file] [log] [blame]
#!/bin/bash
# @@@ START COPYRIGHT @@@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# @@@ END COPYRIGHT @@@
#==========================================
# Check Configuration File for Errors
#==========================================
export TRAF_CONFIG="/etc/trafodion/trafodion_config"
export ERROR_LOG="$LOCAL_WORKDIR/config_setup_error.log"
source $TRAF_CONFIG
function majorErrorFound {
if [[ "$errorFound" == "1" ]]; then
cat $ERROR_LOG
echo
exit -1
fi
}
function setUpErrorLog {
echo
echo "===========================================" > $ERROR_LOG
echo "Trafodion Configuration File Check Errors" >> $ERROR_LOG
echo "===========================================" >> $ERROR_LOG
echo >> $ERROR_LOG
echo "*** WARNING: All errors must be fixed before Installation will continue" >> $ERROR_LOG
}
function checkSuseLinux {
if [[ -z $SUSE_LINUX ]]; then
errorFound=1;
echo "SUSE LINUX" >> $ERROR_LOG
echo "***ERROR: SUSE_LINUX variable not set in config file." >> $ERROR_LOG
else
suseLinux=$(grep -cr SUSE /proc/version)
if [[ "$suseLinux" -ge "1" ]]; then
if [[ "$SUSE_LINUX" == "false" ]]; then
errorFound=1;
echo "SUSE LINUX" >> $ERROR_LOG
echo "***ERROR: SUSE Linux system detected." >> $ERROR_LOG
echo "***ERROR: SUSE_LINUX should equal true." >> $ERROR_LOG
fi
else
if [[ "$SUSE_LINUX" == "true" ]]; then
errorFound=1;
echo "SUSE LINUX" >> $ERROR_LOG
echo "***ERROR: None SUSE Linux system detected." >> $ERROR_LOG
echo "***ERROR: SUSE_LINUX should equal false." >> $ERROR_LOG
fi
fi
fi
}
function checkDirectories {
if [[ -z $TRAF_WORKDIR ]]; then
errorFound=1;
echo "DIRECTORIES" >> $ERROR_LOG
echo "***ERROR: TRAF_WORKDIR variable not set in config file." >> $ERROR_LOG
fi
if [[ -z $LOCAL_WORKDIR ]]; then
errorFound=1;
echo "DIRECTORIES" >> $ERROR_LOG
echo "***ERROR: LOCAL_WORKDIR variable not set in config file." >> $ERROR_LOG
fi
}
function checkTrafodionUser {
if [[ -z $TRAF_USER ]]; then
errorFound=1;
echo "TRAFODION USER" >> $ERROR_LOG
echo "***ERROR: TRAF_USER variable not set in config file." >> $ERROR_LOG
fi
}
function checkTrafPassword {
if [[ -z $TRAF_USER_PASSWORD ]]; then
errorFound=1;
echo "TRAFODION PASSWORD" >> $ERROR_LOG
echo "***ERROR: TRAF_USER_PASSWORD variable not set in config file." >> $ERROR_LOG
else
length=${#TRAF_USER_PASSWORD}
if [[ $length -lt "6" ]]; then
errorFound=1;
echo "TRAFODION PASSWORD" >> $ERROR_LOG
echo "***ERROR: Linux requires password to be at least 6 characters" >> $ERROR_LOG
echo "***ERROR: Password length must be from 6-8 characters." >> $ERROR_LOG
fi
fi
}
function checkNodeList {
if [[ -z $NODE_LIST ]]; then
errorFound=1
echo "TRAFODION NODE LIST" >> $ERROR_LOG
echo "***ERROR: NODE_LIST variable not set in config file." >> $ERROR_LOG
else
ERROR_NODES=""
NODES=""
for node in $NODE_LIST
do
newNode=$(ssh -q -n $node hostname)
if [[ $? -ne "0" ]]; then
errorFound=1
echo "TRAFODION NODE LIST" >> $ERROR_LOG
echo "***ERROR: Could not ssh to $node." >> $ERROR_LOG
echo "***ERROR: Please check node names for typos" >> $ERROR_LOG
majorErrorFound
fi
nodeName=$(echo $newNode | sed 's/[^a-zA-Z0-9\ \.\-]//g')
if [[ "$nodeName" != "$newNode" ]]; then
errorFound=1
echo "TRAFODION NODE LIST" >> $ERROR_LOG
echo "***ERROR: Nodes are not named properly." >> $ERROR_LOG
echo "***ERROR: Nodes can have no special characters other than '-' and '.'" >> $ERROR_LOG
fi
if [[ "$newNode" =~ ^([0-9]{1,3})[.]([0-9]{1,3})[.]([0-9]{1,3})[.]([0-9]{1,3})$ ]]; then
errorFound=1
echo "TRAFODION NODE LIST" >> $ERROR_LOG
echo "***ERROR: Nodes are not named properly." >> $ERROR_LOG
echo "***ERROR: IP addresses are not supported. Please use node names." >> $ERROR_LOG
fi
#Testing sudo access on all nodes
ssh -q -n $newNode sudo echo "***INFO: Testing sudo access on node $newNode"
if [ $? -ne "0" ]; then
error=1
ERROR_NODES="$ERROR_NODES $newNode"
fi
NODES="$NODES $newNode"
done
NODE_LIST=$NODES
if [[ $error == "1" ]]; then
errorFound=1
echo "TRAFODION NODE LIST" >> $ERROR_LOG
echo "***ERROR: $ERROR_NODES does not have sudo access." >> $ERROR_LOG
echo "***ERROR: Must have sudo access on all nodes." >> $ERROR_LOG
fi
for node in $NODE_LIST
do
ssh -q -n $node echo "***INFO: Testing ssh on $node"
if [[ $? -ne "0" ]]; then
error=1
ERROR_NODES="$ERROR_NODES $node"
fi
done
if [[ $error == "1" ]]; then
errorFound=1
echo "TRAFODION NODE LIST" >> $ERROR_LOG
echo "***ERROR: Could not ssh to $ERROR_NODES." >> $ERROR_LOG
echo "***ERROR: Check permissions and known hosts files." >> $ERROR_LOG
fi
node_count=$(echo $NODE_LIST | wc -w)
sudo chmod 777 $TRAF_CONFIG
sed -i '/NODE_LIST\=/d' $TRAF_CONFIG
echo "export NODE_LIST=\"$NODE_LIST\"" >> $TRAF_CONFIG
sed -i '/node_count\=/d' $TRAF_CONFIG
echo "export node_count=\"$node_count\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
MY_NODES=""
for node in $NODE_LIST
do
MY_NODES="$MY_NODES -w $node"
done
sudo chmod 777 $TRAF_CONFIG
sed -i '/MY_NODES\=/d' $TRAF_CONFIG
echo "export MY_NODES=\"$MY_NODES\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
if [ $node_count -eq 1 ]; then
TRAF_PDSH=""
echo "export TRAF_PDSH=\"\"" >> $TRAF_CONFIG
else
TRAF_PDSH="pdsh -S $MY_NODES"
echo "export TRAF_PDSH=\"$TRAF_PDSH\"" >> $TRAF_CONFIG
fi
fi
source $TRAF_CONFIG
}
function checkJavaVersion {
if [[ -z "$JAVA_HOME" ]]; then
errorFound=1
echo "JAVA HOME" >> $ERROR_LOG
echo "***ERROR: JAVA_HOME variable not set in config file." >> $ERROR_LOG
else
REQ_VER="1.7.0_65"
JAVA7="7"
JAVA65="65"
error=""
for node in $NODE_LIST
do
THIS_JVM_VER="$(ssh -q -n $node $JAVA_HOME/bin/java -version 2>&1 > /dev/null)"
if [[ "$THIS_JVM_VER" == *"No such file"* ]]; then
errorFound=1
error=1
echo "JAVA HOME" >> $ERROR_LOG
echo "***ERROR: Unable to find Java version on node $node" >> $ERROR_LOG
echo "***ERROR: Must enter a specific Java version (example: /usr/java/jdk1.7.0_67)" >> $ERROR_LOG
echo "***ERROR: Please check for typos and that directory exists" >> $ERROR_LOG
fi
done
if [[ -z $error ]]; then
for node in $NODE_LIST
do
javaType="$(ssh -q -n $node $JAVA_HOME/bin/javac -version 2>&1 > /dev/null | grep "No such file" | wc -l)"
if [[ $javaType -eq "1" ]]; then
errorFound=1
echo "JAVA HOME" >> $ERROR_LOG
echo "***ERROR: Java version on node $node is of type JRE" >> $ERROR_LOG
echo "***ERROR: Java version needed on all nodes must be a JDK" >> $ERROR_LOG
fi
temp_JAVA=`echo "${THIS_JVM_VER:15:2}" | sed 's/.*\.//'`
#Check if using something less than Java 7
if [[ "$temp_JAVA" -lt "$JAVA7" ]]; then
error="true"
fi
#Checking if using 1.7.0_n
if [[ "${THIS_JVM_VER:18:1}" -eq "0" ]] && [[ "$temp_JAVA" -eq "$JAVA7" ]]; then
if [[ "${THIS_JVM_VER:20:1}" -eq "0" ]] || [[ "${THIS_JVM_VER:20:2}" -lt $JAVA65 ]]; then
error="true"
fi
fi
if [[ -n $error ]]; then
errorFound=1
echo "JAVA HOME" >> $ERROR_LOG
echo "***ERROR: Your existing JAVA_HOME on $node is less than $REQ_VER" >> $ERROR_LOG
echo "***ERROR: Your Java Version on $node = $THIS_JVM_VER" >> $ERROR_LOG
echo "***ERROR: Required java version on $node should be greater than $REQ_VER" >> $ERROR_LOG
fi
done
fi
fi
}
function checkHomeDir {
userForTrafodion=`grep "$TRAF_USER:" /etc/passwd | wc -l`
if [[ "$userForTrafodion" == "0" ]]; then
if [[ -z $HOME_DIR ]]; then
errorFound=1
echo "TRAFODION HOME DIR" >> $ERROR_LOG
echo "***ERROR: HOME_DIR variable not set in config file." >> $ERROR_LOG
else
# strip off TRAF_USER if user added it on end of directory
HOME_DIR=$(echo "$HOME_DIR" | sed -e "s@/$TRAF_USER\$@@")
#Test if home directory is on a NFS disk
diskType="$( df -P -T $HOME_DIR | tail -n +2 | awk '{print $2}')"
if [ "$diskType" == "nfs" ]; then
errorFound=1
echo "TRAFODION HOME DIR" >> $ERROR_LOG
echo "***ERROR: Trafodion userid's home directory ($HOME_DIR) cannot be on an NFS disk"
echo "***ERROR: Please choose a different directory to install on."
fi
fi
else
HOME_DIR=$(grep -r "trafodion" /etc/passwd | sed 's/.*:://' | sed 's/\:.*$//' | sed 's/\/trafodion.*$//')
fi
sudo chmod 777 $TRAF_CONFIG
sed -i '/HOME_DIR\=/d' $TRAF_CONFIG
echo "export HOME_DIR=\"$HOME_DIR\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
source $TRAF_CONFIG
}
function checkEPEL {
if [[ "$SUSE_LINUX" != "true" ]]; then
if [[ ! -z $EPEL_RPM ]]; then
if [[ ! -f $EPEL_RPM ]]; then
errorFound=1
echo "EPEL REPO PATH" >> $ERROR_LOG
echo "***ERROR: File not found. Please check path for existence and typos." >> $ERROR_LOG
fi
if [[ "$EPEL_RPM" != *"rpm"* ]]; then
errorFound=1
echo "***ERROR: File enter is not an RPM. Check file is of type epel***.rpm"
fi
fi
fi
}
function checkHadoopUserPass {
if [ -z $ADMIN ]; then
errorFound=1
echo "HADOOP ADMIN" >> $ERROR_LOG
echo "***ERROR: ADMIN variable not set in config file." >> $ERROR_LOG
fi
if [ -z $PASSWORD ]; then
errorFound=1
echo "HADOOP PASSWORD" >> $ERROR_LOG
echo "***ERROR: PASSWORD variable not set in config file." >> $ERROR_LOG
fi
}
function checkHadoopURL {
if [[ -z "$URL" ]]; then
errorFound=1
echo "HADOOP URL" >> $ERROR_LOG
echo "***ERROR: Hadoop URL variable not set in config file."
majorErrorFound
else
validURL=$(curl -s --head $URL | head -n 1 | grep "OK" | wc -l)
if [[ $validURL -ne "1" ]]; then
errorFound=1
echo "HADOOP URL" >> $ERROR_LOG
echo "***ERROR: Could not access http://$URL" >> $ERROR_LOG
echo "***ERROR: Do not include 'http or https'" >> $ERROR_LOG
echo "***ERROR: Check that URL and port are correct or if $HADOOP_TYPE is up" >> $ERROR_LOG
majorErrorFound
fi
hadoopVersion=$(curl -su $ADMIN:$PASSWORD http://$URL/api/v1/clusters | grep version | grep -c CDH)
if [[ $hadoopVersion -ne "1" ]]; then
hadoopVersion=$(curl -su $ADMIN:$PASSWORD http://$URL/api/v1/clusters | grep version | grep -c HDP)
if [[ $hadoopVersion -ne "1" ]]; then
errorFound=1
echo "HADOOP URL" >> $ERROR_LOG
echo "***ERROR: Hadoop type can not be determined" >> $ERROR_LOG
echo "***ERROR: Check that URL and port are correct or if Hadoop is up" >> $ERROR_LOG
majorErrorFound
else
HADOOP_TYPE="hortonworks"
fi
else
HADOOP_TYPE="cloudera"
fi
sudo chmod 777 $TRAF_CONFIG
sed -i '/HADOOP_TYPE\=/d' $TRAF_CONFIG
echo "export HADOOP_TYPE=\"$HADOOP_TYPE\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
source $TRAF_CONFIG
temp=$(curl -su $ADMIN:$PASSWORD http://$URL/api/v1/clusters |grep name | sed -e 's@[,]@@'g | sed 's/^[^\:]* ://')
CLUSTER_NAME=$(echo $temp | sed -e 's/^"//' -e 's/"$//')
CLUSTER_NAME=${CLUSTER_NAME// /%20}
if [ -z $CLUSTER_NAME ]; then
errorFound=1
echo "HADOOP URL" >> $ERROR_LOG
echo "***ERROR: Could not access http://$URL" >> $ERROR_LOG
echo "***ERROR: Check URL and port are correct or if $hadoop_type is up." >> $ERROR_LOG
majorErrorFound
fi
sudo chmod 777 $TRAF_CONFIG
sed -i '/CLUSTER_NAME\=/d' $TRAF_CONFIG
echo "export CLUSTER_NAME=\"$CLUSTER_NAME\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
source $TRAF_CONFIG
if [[ $node_count -ne 1 ]]; then
sudo chmod 777 $TRAF_CONFIG
sed -i '/CLUSTERNAME\=/d' $TRAF_CONFIG
echo "export CLUSTERNAME=\"$CLUSTER_NAME\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
source $TRAF_CONFIG
fi
fi
}
function getHadoopNodes {
echo "***INFO: Getting list of all $HADOOP_TYPE nodes"
$LOCAL_WORKDIR/traf_getHadoopNodes
if [ $? -ne "0" ]; then
errorFound=1
echo "HADOOP NODES" >> $ERROR_LOG
echo "***ERROR: Could not get list of all Hadoop nodes" >> $ERROR_LOG
else
checkHadoopVersion
fi
}
function checkHadoopVersion {
count=0
for node in $HADOOP_NODES;
do
ssh -q -n $node 'echo "exit" | hbase shell &> $HOME/hbaseVersion.txt'
count=$[$count+1]
foundFile=$(ssh -q -n $node ls $HOME/hbaseVersion.txt | wc -l)
if [[ $foundFile -eq "0" ]]; then
if [[ $count -ge $hadoop_node_count ]]; then
echo "***ERROR: HBase shell not found on any node"
echo "***ERROR: Check that HBase is installed and working"
exit -1
fi
else
echo "***INFO: Checking $HADOOP_TYPE Version"
if [[ $HADOOP_TYPE == "hortonworks" ]]; then
checkHDPVersion
fi
if [[ $HADOOP_TYPE == "cloudera" ]]; then
checkClouderaVersion
fi
break;
fi
done
}
function checkClouderaVersion {
if [[ $CDH_5_3_HDP_2_2_SUPPORT == "N" ]]; then
#Check that Cloudera 5.2 or 5.3 are not installed.
if [[ "$CDH_5_4_SUPPORT" == "Y" ]]; then
nameOfVersion=$(ssh -q -n $node grep "Version" $HOME/hbaseVersion.txt | sed 's/,.*//' | sed 's/.*\-//' | grep cdh5.4.*)
#Check that Cloudera 5.[n>4].* is not installed.
if [[ -z $nameOfVersion ]]; then
versionInstalled=$(ssh -q -n $node grep "Version" $HOME/hbaseVersion.txt | sed 's/,.*//' | sed 's/.*\-//' | grep cdh[5-6].[0-9].* | wc -l)
if [[ $versionInstalled -gt "0" ]]; then
errorFound=1
echo "HADOOP VERSION" >> $ERROR_LOG
echo "***ERROR: Trafodion and Cloudera versions may not be compatible" >> $ERROR_LOG
echo "***ERROR: Detected Cloudera version:" >> $ERROR_LOG
ssh -q -n $node cat $HOME/hbaseVersion.txt >> $ERROR_LOG
fi
fi
else
versionInstalled=$(ssh -q -n $node grep "Version" hbaseVersion.txt | sed 's/,.*//' | sed 's/.*\-//' | grep cdh5.[0-1].* | wc -l)
nameOfVersion=$(ssh -q -n $node grep "Version" hbaseVersion.txt | sed 's/,.*//' | sed 's/.*\-//' | grep cdh5.[0-1].*)
if [[ $versionInstalled -eq "0" ]]; then
errorFound=1
echo "HADOOP VERSION" >> $ERROR_LOG
echo "***ERROR: Only Cloudera Versions 5.0.* or 5.1.* are currently supported" >> $ERROR_LOG
echo "***ERROR: Detected Cloudera version:" $ERROR_LOG
ssh -q -n $node cat hbaseVersion.txt >> $ERROR_LOG
fi
fi
else
nameOfVersion=$(ssh -q -n $node grep "Version" hbaseVersion.txt | sed 's/,.*//' | sed 's/.*\-//' | grep cdh5.[2-3].*)
#Check that Cloudera 5.[n>3].* is not installed.
if [[ -z $nameOfVersion ]]; then
versionInstalled=$(ssh -q -n $node grep "Version" hbaseVersion.txt | sed 's/,.*//' | sed 's/.*\-//' | grep cdh[4-6].[0-9].* | wc -l)
if [[ $versionInstalled -gt "0" ]]; then
errorFound=1
echo "HADOOP VERSION" >> $ERROR_LOG
echo "***ERROR: Trafodion and Cloudera versions may not be compatible" >> $ERROR_LOG
echo "***ERROR: Detected Cloudera version:" >> $ERROR_LOG
ssh -q -n $node cat hbaseVersion.txt >> $ERROR_LOG
fi
fi
fi
export HADOOP_PATH="/usr/lib/hbase/lib"
#Check for Cloudera parcels of packages.
parcelsInstalled=$(ssh -q -n $node sudo ls /opt/cloudera/parcels/ | wc -l)
if [[ $parcelsInstalled -gt "0" ]]; then
export HADOOP_PATH="/opt/cloudera/parcels/CDH/lib/hbase/lib"
fi
echo "***INFO: nameOfVersion=$nameOfVersion"
echo "***INFO: HADOOP_PATH=$HADOOP_PATH"
sudo chmod 777 $TRAF_CONFIG
sed -i '/HADOOP_PATH\=/d' $TRAF_CONFIG
echo "export HADOOP_PATH=\"$HADOOP_PATH\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
source $TRAF_CONFIG
}
function checkHDPVersion {
if [[ $CDH_5_3_HDP_2_2_SUPPORT == "N" ]]; then
if [[ $HDP_2_3_SUPPORT == "N" ]]; then
#Check that Hortonworks 2.2 is not installed
versionInstalled=$(ssh -q -n $node grep "Version" $HOME/hbaseVersion.txt | sed 's/,.*//' | sed 's/-.*//' | grep 2.1.* | wc -l)
if [[ $versionInstalled -eq "0" ]]; then
errorFound=1
echo "HADOOP VERSION" >> $ERROR_LOG
echo "***ERROR: Trafodion and Hortoonworks versions may not be compatible." >> $ERROR_LOG
echo "***ERROR: Detected Hortonworks version:" >> $ERROR_LOG
ssh -q -n $node cat $HOME/hbaseVersion.txt >> $ERROR_LOG
fi
nameOfVersion=$(ssh -q -n $node grep "Version" $HOME/hbaseVersion.txt | sed 's/,.*//' | sed 's/-.*//' | grep 2.1.*)
if [[ -z $nameOfVersion ]]; then
versionInstalled=$(ssh -q -n $node grep "Version" $HOME/hbaseVersion.txt | sed 's/,.*//' | sed 's/-.*//' | sed 's/Version [0-9]*.[0-9]*.[0-9].//g' | grep [1-3].[3-9].* | wc -l)
if [[ $versionInstalled -gt "0" ]]; then
errorFound=1
echo "HADOOP VERSION" >> $ERROR_LOG
echo "***ERROR: Trafodion and Hortonworks versions may not be compatible" >> $ERROR_LOG
echo "***ERROR: Detected Hortonworks version:" >> $ERROR_LOG
ssh -q -n $node cat hbaseVersion.txt >> $ERROR_LOG
fi
fi
export HADOOP_PATH="/usr/lib/hbase/lib"
else
nameOfVersion=$(ssh -q -n $node grep "Version" $HOME/hbaseVersion.txt | sed 's/,.*//' | sed 's/-.*//' | grep 2.3.*)
#Check that HDP 2.[n>3].* is not installed.
if [[ -z $nameOfVersion ]]; then
versionInstalled=$(ssh -q -n $node grep "Version" $HOME/hbaseVersion.txt | sed 's/,.*//' | sed 's/-.*//' | sed 's/Version [0-9]*.[0-9]*.[0-9].//g' | grep [1-3].[0-9].* | wc -l)
if [[ $versionInstalled -gt "0" ]]; then
errorFound=1
echo "HADOOP VERSION" >> $ERROR_LOG
echo "***ERROR: Trafodion and Hortonworks versions may not be compatible" >> $ERROR_LOG
echo "***ERROR: Detected Hortonworks version:" >> $ERROR_LOG
ssh -q -n $node cat hbaseVersion.txt >> $ERROR_LOG
fi
fi
export HADOOP_PATH="/usr/hdp/current/hbase-regionserver/lib"
fi
else
nameOfVersion=$(ssh -q -n $node grep "Version" $HOME/hbaseVersion.txt | sed 's/,.*//' | sed 's/-.*//' | grep 2.2.*)
fi
#Check that HDP 2.[n>2].* is not installed.
if [[ -z $nameOfVersion ]]; then
versionInstalled=$(ssh -q -n $node grep "Version" $HOME/hbaseVersion.txt | sed 's/,.*//' | sed 's/-.*//' | sed 's/Version 0.[0-9]*.[0-9].//g' | grep [1-3].[0-9].* | wc -l)
if [[ $versionInstalled -gt "0" ]]; then
errorFound=1
echo "HADOOP VERSION" >> $ERROR_LOG
echo "***ERROR: Trafodion and Hortonworks versions may not be compatible" >> $ERROR_LOG
echo "***ERROR: Detected Hortonworks version:" >> $ERROR_LOG
ssh -q -n $node cat hbaseVersion.txt >> $ERROR_LOG
fi
fi
export HADOOP_PATH="/usr/hdp/current/hbase-regionserver/lib"
echo "***INFO: nameOfVersion=$nameOfVersion"
echo "***INFO: HADOOP_PATH=$HADOOP_PATH"
sudo chmod 777 $TRAF_CONFIG
sed -i '/HADOOP_PATH\=/d' $TRAF_CONFIG
echo "export HADOOP_PATH=\"$HADOOP_PATH\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
source $TRAF_CONFIG
}
function checkHadoopNames {
if [[ -z "$HDFS_USER" ]]; then
errorFound=1
echo "HADOOP NAMES" >> $ERROR_LOG
echo "***ERROR: HDFS_USER variable not set in config file."
fi
if [[ -z "$HBASE_USER" ]]; then
errorFound=1
echo "HADOOP NAMES" >> $ERROR_LOG
echo "***ERROR: HBASE_USER variable not set in config file."
fi
if [[ -z "$HBASE_GROUP" ]]; then
errorFound=1
echo "HADOOP NAMES" >> $ERROR_LOG
echo "***ERROR: HBASE_GROUP variable not set in config file."
fi
}
function checkSQROOT {
if [[ -z $SQ_ROOT ]]; then
errorFound=1
echo "SQ ROOT" >> $ERROR_LOG
echo "***ERROR: SQ_ROOT variable not set in config file" >> $ERROR_LOG
fi
}
function checkStart {
if [[ -z $START ]]; then
erroFound=1
echo "START" >> $ERROR_LOG
echo "***ERROR: START variable not set in config file" >> $ERROR_LOG
else
if [[ $START == "Y" ]]; then
INIT_TRAFODION="Y"
else
INIT_TRAFODION="N"
fi
fi
sudo chmod 777 $TRAF_CONFIG
sed -i '/INIT_TRAFODION\=/d' $TRAF_CONFIG
echo "export INIT_TRAFODION=\"$INIT_TRAFODION\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
source $TRAF_CONFIG
}
function checkDCS {
if [[ -z $DCS_SERVERS_PARM ]]; then
errorFound=1
echo "DCS" >> $ERROR_LOG
echo "***ERROR: DCS_SERVERS_PARM not set in config file" >> $ERROR_LOG
else
if [[ $DCS_SERVERS_PARM == *[!0-9]* ]]; then
errorFound=1
echo "DCS" >> $ERROR_LOG
echo "***ERROR: DCS servers must be a number." >> $ERROR_LOG
fi
fi
}
function checkLDAP {
if [[ -z $LDAP_SECURITY ]]; then
errorFound=1
echo "LDAP" >> $ERROR_LOG
echo "***ERROR: LDAP_SECURITY variable not set in config file." >> $ERROR_LOG
else
if [[ $LDAP_SECURITY == "Y" ]]; then
if [[ -z $LDAP_AUTH_FILE ]]; then
errorFound=1
echo "LDAP" >> $ERROR_LOG
echo "***ERROR: LDAP_AUTH_FILE not set in config file." >> $ERROR_LOG
fi
fi
fi
}
function checkHadoopSupport {
if [[ -z $TRAF_BUILD ]]; then
TRAF_BUILD=$(tar -tf $TRAF_PACKAGE | grep "trafodion_server")
tar -xzf $TRAF_PACKAGE --directory $LOCAL_WORKDIR
TRAF_BUILD_PATH=$LOCAL_WORKDIR/$TRAF_BUILD
else
TRAF_BUILD_PATH=$TRAF_BUILD
fi
install_features_path=$(tar -tf $TRAF_BUILD_PATH | grep "install_features")
if [[ ! -z $install_features_path ]]; then
tar -xzf $TRAF_BUILD_PATH $install_features_path
source $install_features_path
sudo chmod 777 $TRAF_CONFIG
echo "export CDH_5_3_HDP_2_2_SUPPORT=\"$CDH_5_3_HDP_2_2_SUPPORT\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
if [[ -z $CDH_5_4_SUPPORT ]]; then
sudo chmod 777 $TRAF_CONFIG
echo "export CDH_5_4_SUPPORT=\"N\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
else
sudo chmod 777 $TRAF_CONFIG
echo "export CDH_5_4_SUPPORT=\"$CDH_5_4_SUPPORT\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
fi
if [[ -z $HDP_2_3_SUPPORT ]]; then
sudo chmod 777 $TRAF_CONFIG
echo "export HDP_2_3_SUPPORT=\"N\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
else
sudo chmod 777 $TRAF_CONFIG
echo "export HDP_2_3_SUPPORT=\"$HDP_2_3_SUPPORT\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
fi
else
CDH_5_3_HDP_2_2_SUPPORT="N"
CDH_5_4_SUPPORT="N"
HDP_2_3_SUPPORT="N"
sudo chmod 777 $TRAF_CONFIG
echo "export CDH_5_3_HDP_2_2_SUPPORT=\"$CDH_5_3_HDP_2_2_SUPPORT\"" >> $TRAF_CONFIG
echo "export CDH_5_4_SUPPORT=\"$CDH_5_4_SUPPORT\"" >> $TRAF_CONFIG
echo "export HDP_2_3_SUPPORT=\"$HDP_2_3_SUPPORT\"" >> $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
fi
}
#===========================================
#Main
echo
echo "************************************"
echo " Trafodion Configuration File Check"
echo "************************************"
echo
setUpErrorLog
checkSuseLinux
checkDirectories
checkTrafodionUser
checkTrafPassword
checkNodeList
checkJavaVersion
checkHomeDir
checkEPEL
checkHadoopSupport
checkHadoopUserPass
checkHadoopURL
getHadoopNodes
checkHadoopNames
checkSQROOT
checkStart
checkDCS
checkLDAP
majorErrorFound