6aed719e50
This PR adds support for using maven coordinates as dependencies to spark-shell.
Coordinates can be provided as a comma-delimited string after the flag `--packages`.
Additional remote repositories (like SonaType) can be supplied as a comma-delimited string after the flag
`--repositories`.
Uses the Ivy library to resolve dependencies. Unfortunately the library has no decent documentation, therefore solving more complex dependency issues can be a problem.
pwendell, mateiz, mengxr
**Note: This is still a WIP. The following need to be handled:**
- [x] add docs for the methods
- [x] take local ivy cache path as an argument
- [x] add tests
- [x] add Windows compatibility
- [x] exclude unused Ivy dependencies
Author: Burak Yavuz <brkyvz@gmail.com>
Closes #4215 from brkyvz/SPARK-5341ivy and squashes the following commits:
9215851 [Burak Yavuz] ready to merge
db2a5cc [Burak Yavuz] changed logging to printStream
9dae87f [Burak Yavuz] file separators changed
71c374d [Burak Yavuz] merge conflicts fixed
c08dc9f [Burak Yavuz] fixed merge conflicts
3ada19a [Burak Yavuz] fixed Jenkins error (hopefully) and added comment on oro
43c2290 [Burak Yavuz] fixed that ONE line
231f72f [Burak Yavuz] addressed code review
2cd6562 [Burak Yavuz] Merge branch 'master' of github.com:apache/spark into SPARK-5341ivy
85ec5a3 [Burak Yavuz] added oro as a dependency explicitly
ea44ca4 [Burak Yavuz] add oro back to dependencies
cef0e24 [Burak Yavuz] IntelliJ is just messing things up
97c4a92 [Burak Yavuz] fix more weird IntelliJ formatting
9cf077d [Burak Yavuz] fix weird IntelliJ formatting
dcf5e13 [Burak Yavuz] fix windows command line flags
3a23f21 [Burak Yavuz] excluded ivy dependencies
53423e0
[Burak Yavuz] tests added
3705907 [Burak Yavuz] remove ivy-repo as a command line argument. Use global ivy cache as default
c04d885 [Burak Yavuz] take path to ivy cache as a conf
2edc9b5 [Burak Yavuz] managed to exclude Spark and it's dependencies
a0870af [Burak Yavuz] add docs. remove unnecesary new lines
6645af4 [Burak Yavuz] [SPARK-5341] added base implementation
882c4c8 [Burak Yavuz] added maven dependency download
60 lines
2 KiB
Bash
Executable file
60 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.
|
|
#
|
|
|
|
# Gather all spark-submit options into SUBMISSION_OPTS
|
|
function gatherSparkSubmitOpts() {
|
|
|
|
if [ -z "$SUBMIT_USAGE_FUNCTION" ]; then
|
|
echo "Function for printing usage of $0 is not set." 1>&2
|
|
echo "Please set usage function to shell variable 'SUBMIT_USAGE_FUNCTION' in $0" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# NOTE: If you add or remove spark-submit options,
|
|
# modify NOT ONLY this script but also SparkSubmitArgument.scala
|
|
SUBMISSION_OPTS=()
|
|
APPLICATION_OPTS=()
|
|
while (($#)); do
|
|
case "$1" in
|
|
--master | --deploy-mode | --class | --name | --jars | --packages | --py-files | --files | \
|
|
--conf | --repositories | --properties-file | --driver-memory | --driver-java-options | \
|
|
--driver-library-path | --driver-class-path | --executor-memory | --driver-cores | \
|
|
--total-executor-cores | --executor-cores | --queue | --num-executors | --archives)
|
|
if [[ $# -lt 2 ]]; then
|
|
"$SUBMIT_USAGE_FUNCTION"
|
|
exit 1;
|
|
fi
|
|
SUBMISSION_OPTS+=("$1"); shift
|
|
SUBMISSION_OPTS+=("$1"); shift
|
|
;;
|
|
|
|
--verbose | -v | --supervise)
|
|
SUBMISSION_OPTS+=("$1"); shift
|
|
;;
|
|
|
|
*)
|
|
APPLICATION_OPTS+=("$1"); shift
|
|
;;
|
|
esac
|
|
done
|
|
|
|
export SUBMISSION_OPTS
|
|
export APPLICATION_OPTS
|
|
}
|