forked from KarthikTunga/impala
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstart-impalad.sh
executable file
·102 lines (94 loc) · 3.07 KB
/
start-impalad.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/bin/bash
# Copyright 2012 Cloudera Inc.
#
# Licensed 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.
# Starts up an impalad or a mini-impala-cluster with the specified command line
# arguments. An optional -build_type parameter can be passed to determine the build
# type to use for the impalad instance.
set -euo pipefail
trap 'echo Error in $0 at line $LINENO: $(cd "'$PWD'" && awk "NR == $LINENO" $0)' ERR
BUILD_TYPE=latest
IMPALAD_ARGS=""
BINARY_BASE_DIR=${IMPALA_HOME}/be/build
TOOL_PREFIX=""
IN_PROCESS_BINARY=testutil/mini-impala-cluster
IMPALAD_BINARY=service/impalad
BINARY=${IMPALAD_BINARY}
JVM_DEBUG_PORT=""
JVM_SUSPEND="n"
JVM_ARGS=""
PERF_ARGS=${PERF_ARGS:-"record -F 99"}
for ARG in $*
do
case "$ARG" in
-build_type=debug)
BUILD_TYPE=debug
;;
-build_type=release)
BUILD_TYPE=release
;;
-build_type=latest)
;;
-build_type=*)
echo "Invalid build type. Valid values are: debug, release"
exit 1
;;
-in-process)
BINARY=${IN_PROCESS_BINARY}
;;
-gdb)
echo "Starting Impala under gdb..."
TOOL_PREFIX="gdb --args"
;;
-jvm_debug_port=*)
JVM_DEBUG_PORT="${ARG#*=}"
;;
-jvm_suspend)
JVM_SUSPEND="y"
;;
-jvm_args=*)
JVM_ARGS="${ARG#*=}"
;;
-perf)
echo "Starting Impala with 'perf' tracing. Set \$PERF_ARGS to customize use."
TOOL_PREFIX="perf ${PERF_ARGS}"
;;
# Pass all other options as an Impalad argument
*)
IMPALAD_ARGS="${IMPALAD_ARGS} ${ARG}"
esac
done
IMPALA_CMD=${BINARY_BASE_DIR}/${BUILD_TYPE}/${BINARY}
# Temporarily disable unbound variable checking in case JAVA_TOOL_OPTIONS is not set.
set +u
# Optionally enable Java debugging.
if [ -n "$JVM_DEBUG_PORT" ]; then
export JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=${JVM_DEBUG_PORT},server=y,suspend=${JVM_SUSPEND} ${JAVA_TOOL_OPTIONS}"
fi
# Optionally add additional JVM args.
if [ -n "$JVM_ARGS" ]; then
export JAVA_TOOL_OPTIONS="${JAVA_TOOL_OPTIONS} ${JVM_ARGS}"
fi
# If Kerberized, source appropriate vars and set startup options
if ${CLUSTER_DIR}/admin is_kerberized; then
. ${MINIKDC_ENV}
IMPALAD_ARGS="${IMPALAD_ARGS} -principal=${MINIKDC_PRINC_IMPALA}"
IMPALAD_ARGS="${IMPALAD_ARGS} -be_principal=${MINIKDC_PRINC_IMPALA_BE}"
IMPALAD_ARGS="${IMPALAD_ARGS} -keytab_file=${KRB5_KTNAME}"
IMPALAD_ARGS="${IMPALAD_ARGS} -krb5_conf=${KRB5_CONFIG}"
if [ "${MINIKDC_DEBUG}" = "true" ]; then
IMPALAD_ARGS="${IMPALAD_ARGS} -krb5_debug_file=/tmp/impalad.krb5_debug"
fi
fi
. ${IMPALA_HOME}/bin/set-classpath.sh
exec ${TOOL_PREFIX} ${IMPALA_CMD} ${IMPALAD_ARGS}