ibuenros commented on a change in pull request #2578: [GOBBLIN-707] rewrite gobblin script to combine all modes and command URL: https://github.com/apache/incubator-gobblin/pull/2578#discussion_r286703827
########## File path: bin/gobblin.sh ########## @@ -17,50 +17,488 @@ # limitations under the License. # -calling_dir() { - echo "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +# JAVA_HOME is required. +if [[ -z "$JAVA_HOME" ]]; then + echo -e "\nError: Environment variable JAVA_HOME not set!\n" + exit 1 +fi + +# global vars + +GOBBLIN_VERSION=@project.version@ +GOBBLIN_HOME="$(cd `dirname $0`/..; pwd)" +GOBBLIN_LIB=${GOBBLIN_HOME}/lib +GOBBLIN_BIN=${GOBBLIN_HOME}/bin +GOBBLIN_LOGS=${GOBBLIN_HOME}/logs +GOBBLIN_CONF='' + +#sourcing basic gobblin env vars like GOBBLIN_HOME and GOBBLIN_LIB +. ${GOBBLIN_BIN}/gobblin-env.sh + +CLUSTER_NAME="gobblin_cluster" +JVM_OPTS="-Xmx1g -Xms512m" +LOG4J_FILE_PATH='' +LOG4J_OPTS='' +GOBBLIN_MODE='' +ACTION='' +JVM_FLAGS='' +EXTRA_JARS='' +VERBOSE=0 +ENABLE_GC_LOGS=0 +CMD_PARAMS='' + + +# Gobblin Commands, Modes & respective Classes +GOBBLIN_MODE_TYPE='' +CLI='cli' +SERVICE='service' + +# Commands +JOB_STATE_TO_JSON_CMD='job-state-to-json' +JOB_STORE_SCHEMA_MANAGER_CMD='job-store-schema-manager' +CLASSPATH_CMD='classpath' + +# Execution Modes +STANDALONE_MODE='standalone' +CLUSTER_MASTER_MODE='cluster-master' +CLUSTER_WORKER_MODE='cluster-worker' +AWS_MODE='aws' +YARN_MODE='yarn' +MAPREDUCE_MODE='mapreduce' +SERVICE_MANAGER_MODE='service-manager' + +GOBBLIN_EXEC_MODE_LIST="$STANDALONE_MODE $CLUSTER_MASTER_MODE $CLUSTER_WORKER_MODE $AWS_MODE $YARN_MODE $MAPREDUCE_MODE $SERVICE_MANAGER_MODE" + +# CLI Command class +CLI_CLASS='org.apache.gobblin.runtime.cli.GobblinCli' + +# Service Class +STANDALONE_CLASS='org.apache.gobblin.scheduler.SchedulerDaemon' +CLUSTER_MASTER_CLASS='org.apache.gobblin.cluster.GobblinClusterManager' +CLUSTER_WORKER_CLASS='org.apache.gobblin.cluster.GobblinTaskRunner' +AWS_CLASS='org.apache.gobblin.aws.GobblinAWSClusterLauncher' +YARN_CLASS='org.apache.gobblin.yarn.GobblinYarnAppLauncher' +MAPREDUCE_CLASS='org.apache.gobblin.runtime.mapreduce.CliMRJobLauncher' +SERVICE_MANAGER_CLASS='org.apache.gobblin.service.modules.core.GobblinServiceManager' + + +function print_gobblin_usage() { + echo "Usage:" + echo "gobblin.sh cli <cli-command> <params>" + echo "gobblin.sh service <execution-mode> <start|stop|status>" + echo "" + echo "Use \"gobblin <cli|service> --help\" for more information. (Gobblin Version: $GOBBLIN_VERSION)" +} + +function print_gobblin_cli_usage() { Review comment: Why is this needed? `GobblinCli` should be able to automatically generate this usage info. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services