blob: d1b2bab0aafbd09530f2ea85e86d9d2cd78b1140 [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 @@@
#
#
# This script cleans up the HBase env
# that was setup by install_local_hadoop.
# It requires Hadoop to be up.
#
# - kills the HBase Master process (if it exists)
# - deletes the HBase log files
# - deletes the HDFS directory /hbase
#
# After running this script:
# - swstarthbase
# - sqstart
# - initialize trafodion
#
function getMyNameNode {
jps | grep -w NameNode | cut -d' ' -f1
}
function getMyDataNode {
jps | grep -w DataNode | cut -d' ' -f1
}
function getMyHMaster {
jps | grep HMaster | cut -d' ' -f1
}
function killMyHMaster {
lv_hbpid=`getMyHMaster`
if [ ! -z ${lv_hbpid} ]; then
echo "Killing HMaster pid: ${lv_hbpid}"
kill -9 ${lv_hbpid}
else
echo "There's no HMaster process to kill"
fi
}
if [[ $# -eq 0 || $1 == "-h" ]]; then
echo " "
echo "Usage: $0 [ 0 | 1 | 2 ]"
echo " "
echo " 0: Clean HBase log files"
echo " 1: Clean HBase log files + zookeeper data"
echo " 2: Clean HBase log files + zookeeper data + /hbase in HDFS"
echo " "
exit 1
fi
lv_clean_hb_data=$1
lv_nnpid=`getMyNameNode`
if [[ -z ${lv_nnpid} ]]; then
echo "NameNode is not up - please run swstarthadoop to start it or check the Hadoop logs - exitting..."
exit 1
fi
echo "NameNode pid: ${lv_nnpid}"
lv_dnpid=`getMyDataNode`
if [[ -z ${lv_dnpid} ]]; then
echo "DataNode is not up - please run swstarthadoop to start it or check the Hadoop logs - exitting..."
exit 1
fi
echo "DataNode pid: ${lv_dnpid}"
# stop / kill the HMaster process
killMyHMaster
# delete the zookeeper info
if [[ ${lv_clean_hb_data} -gt 0 ]]; then
# old value, which was actually a typo, remove this later, once
# everyone has switched over to the new value
old_lv_zk_dir="${MY_SW_ROOT}/hdfs:"
if [[ -d ${old_lv_zk_dir} ]]; then
echo "Deleting the zookeeper directory: ${old_lv_zk_dir}"
rm -rf ${old_lv_zk_dir}
elif [[ -d "${MY_ZOOKEEPER_DATA_DIR}" ]]; then
echo "Deleting the zookeeper directory: ${MY_ZOOKEEPER_DATA_DIR}"
rm -rf ${MY_ZOOKEEPER_DATA_DIR}
else
echo "Could not find zookeeper directory: ${MY_ZOOKEEPER_DATA_DIR}"
fi
fi
#delete the logs
echo "Deleting HBase logs in: ${TRAF_HOME}/sql/local_hadoop/hbase/logs"
if [ ! -z ${TRAF_HOME} ]; then
rm -rf ${TRAF_HOME}/sql/local_hadoop/hbase/logs/*.log
rm -rf ${TRAF_HOME}/sql/local_hadoop/hbase/logs/*log.[0-9]*
rm -rf ${TRAF_HOME}/sql/local_hadoop/hbase/logs/*.out
rm -rf ${TRAF_HOME}/sql/local_hadoop/hbase/logs/*.out.[0-9]*
fi
if [[ ${lv_clean_hb_data} -gt 1 ]]; then
# delete the HBase table data from HDFS
echo "Deleting the HBase data directory (hdfs) /hbase"
swhdfs dfs -rm -f -r -skipTrash /hbase
fi