## What changes were proposed in this pull request? Currently if we run ``` sh start-thriftserver.sh -h ``` we get ``` ... Thrift server options: 2018-10-15 21:45:39 INFO HiveThriftServer2:54 - Starting SparkContext 2018-10-15 21:45:40 INFO SparkContext:54 - Running Spark version 2.3.2 2018-10-15 21:45:40 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 2018-10-15 21:45:40 ERROR SparkContext:91 - Error initializing SparkContext. org.apache.spark.SparkException: A master URL must be set in your configuration at org.apache.spark.SparkContext.<init>(SparkContext.scala:367) at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2493) at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.apply(SparkSession.scala:934) at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.apply(SparkSession.scala:925) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:925) at org.apache.spark.sql.hive.thriftserver.SparkSQLEnv$.init(SparkSQLEnv.scala:48) at org.apache.spark.sql.hive.thriftserver.HiveThriftServer2$.main(HiveThriftServer2.scala:79) at org.apache.spark.sql.hive.thriftserver.HiveThriftServer2.main(HiveThriftServer2.scala) 2018-10-15 21:45:40 ERROR Utils:91 - Uncaught exception in thread main ``` After fix, the usage output is clean: ``` ... Thrift server options: --hiveconf <property=value> Use value for given property ``` Also exit with code 1, to follow other scripts(this is the behavior of parsing option `-h` for other linux commands as well). ## How was this patch tested? Manual test. Closes #22727 from gengliangwang/stsUsage. Authored-by: Gengliang Wang <gengliang.wang@databricks.com> Signed-off-by: Sean Owen <sean.owen@databricks.com>
61 lines
2 KiB
Bash
Executable file
61 lines
2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
#
|
|
# 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.
|
|
#
|
|
|
|
#
|
|
# Shell script for starting the Spark SQL Thrift server
|
|
|
|
# Enter posix mode for bash
|
|
set -o posix
|
|
|
|
if [ -z "${SPARK_HOME}" ]; then
|
|
export SPARK_HOME="$(cd "`dirname "$0"`"/..; pwd)"
|
|
fi
|
|
|
|
# NOTE: This exact class name is matched downstream by SparkSubmit.
|
|
# Any changes need to be reflected there.
|
|
CLASS="org.apache.spark.sql.hive.thriftserver.HiveThriftServer2"
|
|
|
|
function usage {
|
|
echo "Usage: ./sbin/start-thriftserver [options] [thrift server options]"
|
|
pattern="usage"
|
|
pattern+="\|Spark assembly has been built with Hive"
|
|
pattern+="\|NOTE: SPARK_PREPEND_CLASSES is set"
|
|
pattern+="\|Spark Command: "
|
|
pattern+="\|======="
|
|
pattern+="\|--help"
|
|
pattern+="\|Using Spark's default log4j profile:"
|
|
pattern+="\|^log4j:"
|
|
pattern+="\|Started daemon with process name"
|
|
pattern+="\|Registered signal handler for"
|
|
|
|
"${SPARK_HOME}"/bin/spark-submit --help 2>&1 | grep -v Usage 1>&2
|
|
echo
|
|
echo "Thrift server options:"
|
|
"${SPARK_HOME}"/bin/spark-class $CLASS --help 2>&1 | grep -v "$pattern" 1>&2
|
|
}
|
|
|
|
if [[ "$@" = *--help ]] || [[ "$@" = *-h ]]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
export SUBMIT_USAGE_FUNCTION=usage
|
|
|
|
exec "${SPARK_HOME}"/sbin/spark-daemon.sh submit $CLASS 1 --name "Thrift JDBC/ODBC Server" "$@"
|