KYLIN-2280 Port config util Signed-off-by: Hongbin Ma <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/e4ed2322 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/e4ed2322 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/e4ed2322 Branch: refs/heads/master-hbase0.98 Commit: e4ed2322b7ff37a14a0d741766304f46ea58ba69 Parents: f852863 Author: xiefan46 <[email protected]> Authored: Mon Mar 13 15:41:49 2017 +0800 Committer: Hongbin Ma <[email protected]> Committed: Wed Mar 15 14:40:18 2017 +0800 ---------------------------------------------------------------------- build/bin/kylin.sh | 4 +- build/bin/kylin_port_replace_util.sh | 97 +++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/e4ed2322/build/bin/kylin.sh ---------------------------------------------------------------------- diff --git a/build/bin/kylin.sh b/build/bin/kylin.sh index a87fa78..f30b751 100644 --- a/build/bin/kylin.sh +++ b/build/bin/kylin.sh @@ -116,7 +116,9 @@ then echo "" echo "A new Kylin instance is started by $USER. To stop it, run 'kylin.sh stop'" echo "Check the log at ${KYLIN_HOME}/logs/kylin.log" - echo "Web UI is at http://<hostname>:7070/kylin" + kylin_server_port=`sed -n "s/<Connector port=\"\(.*\)\" protocol=\"HTTP\/1.1\"/\1/"p ${KYLIN_HOME}/tomcat/conf/server.xml` + kylin_server_port=`echo ${kylin_server_port}` #ignore white space + echo "Web UI is at http://<hostname>:${kylin_server_port}/kylin" exit 0 # stop command http://git-wip-us.apache.org/repos/asf/kylin/blob/e4ed2322/build/bin/kylin_port_replace_util.sh ---------------------------------------------------------------------- diff --git a/build/bin/kylin_port_replace_util.sh b/build/bin/kylin_port_replace_util.sh new file mode 100755 index 0000000..a51e60d --- /dev/null +++ b/build/bin/kylin_port_replace_util.sh @@ -0,0 +1,97 @@ +#!/bin/bash +#exit if find error +# ============================================================================ + +set -o pipefail # trace ERR through pipes +set -o errtrace # trace ERR through 'time command' and other functions +function error() { + SCRIPT="$0" # script name + LASTLINE="$1" # line of error occurrence + LASTERR="$2" # error code + echo "ERROR exit from ${SCRIPT} : line ${LASTLINE} with exit code ${LASTERR}" + exit 1 +} +trap 'error ${LINENO} ${?}' ERR + + +#check input parameters +if [ $# -eq 0 ]; then + echo "Usage : port_offset_util.sh set PORT_OFFSET --> Modify all conflict ports base on a offset" + echo "Usage : port_offset_util.sh reset --> Recover to original setting" + exit 0 +fi + +#check kylin home +if [ -z "$KYLIN_HOME" ] +then + echo 'Please make sure KYLIN_HOME has been set' + exit 1 +else + echo "KYLIN_HOME is set to ${KYLIN_HOME}" +fi + +#variables +TOMCAT_BACKUP_FILE="${KYLIN_HOME}/tomcat/conf/server.xml.backup" +TOMCAT_CONFIG_FILE="${KYLIN_HOME}/tomcat/conf/server.xml" +KYLIN_CONFIG_FILE="${KYLIN_HOME}/conf/kylin.properties" +KYLIN_BACKUP_FILE="${KYLIN_HOME}/conf/kylin.properties.backup" +TOMCAT_PORT_LIST=(9005 7070 9443 7443 9009) +KYLIN_DEFAULT_PORT=7070 + +if [ "$1" == "set" ] +then + OFFSET=$2 + echo "Port offset is : ${OFFSET}" + + #check config file exist + if [ ! -f ${KYLIN_CONFIG_FILE} ] || [ ! -f ${TOMCAT_CONFIG_FILE} ]; then + echo "Some of the config file not exist" + exit 1 + fi + + #back or reset + if [ ! -f ${KYLIN_BACKUP_FILE} ]; then #backup if not exist + cp -f ${KYLIN_CONFIG_FILE} ${KYLIN_BACKUP_FILE} + else + cp -r ${KYLIN_BACKUP_FILE} ${KYLIN_CONFIG_FILE} #reset if exist + fi + + if [ ! -f ${TOMCAT_BACKUP_FILE} ]; then #backup if not exist + cp -f ${TOMCAT_CONFIG_FILE} ${TOMCAT_BACKUP_FILE} + else + cp -r ${TOMCAT_BACKUP_FILE} ${TOMCAT_CONFIG_FILE} #reset if exist + fi + + #replace ports in kylin.properties + new_kylin_port=`expr ${KYLIN_DEFAULT_PORT} + ${OFFSET}` + + sed -i "s/kylin.server.cluster-servers=\(.*\).*:\(.*\)/kylin.server.cluster-servers=\1:${new_kylin_port}/g" ${KYLIN_CONFIG_FILE} + + echo "New kylin port is : ${new_kylin_port}" + + #replace ports in server.xml + + for port in ${TOMCAT_PORT_LIST[@]} + do + new_port=`expr ${port} + ${OFFSET} ` + #echo "Replace old port : ${port} to new port : ${new_port}" + sed -i "s/$port/${new_port}/g" ${TOMCAT_CONFIG_FILE} + + done + echo "Files below modified:" + echo ${KYLIN_CONFIG_FILE} + echo ${TOMCAT_CONFIG_FILE} +elif [ "$1" == "reset" ] +then + #reset kylin.properties + cp -f ${KYLIN_BACKUP_FILE} ${KYLIN_CONFIG_FILE} + cp -f ${TOMCAT_BACKUP_FILE} ${TOMCAT_CONFIG_FILE} + rm -f ${KYLIN_BACKUP_FILE} + rm -f ${TOMCAT_BACKUP_FILE} + echo "Files below reset to original:" + echo ${KYLIN_CONFIG_FILE} + echo ${TOMCAT_CONFIG_FILE} +else + echo "Unrecognized command" + exit 1 +fi
