-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrun.sh
executable file
·68 lines (53 loc) · 2 KB
/
run.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
#!/bin/bash
# -*- coding: utf-8 -*-
CURRENT_DIR=`pwd`
PYFILES_DIR='pyfiles'
SPARKCONFIG='spark2-submit.conf'
SPARKSUBMIT='spark2-submit'
create_pyfiles_dir() {
mkdir ${PYFILES_DIR}
virtualenv --no-site-packages /tmp/venv
source /tmp/venv/bin/activate
pip install -r requirements.txt
cd /tmp/venv/lib/python*/site-packages
zip -r ${CURRENT_DIR}/${PYFILES_DIR}/avro.zip avro
cd ${CURRENT_DIR}
zip -r ${PYFILES_DIR}/worker.zip worker
deactivate
rm -r /tmp/venv
}
# .....................................check Spark version
${SPARKSUBMIT} --version > /dev/null 2>&1
if [ ! $? -eq 0 ]; then
echo "Environment Error: command \"${SPARKSUBMIT}\" does not exist"
echo "Abort"
echo
fi
# .....................................load spark configuration file
if [ ! -f "${SPARKCONFIG}" ]; then
echo "Environment Error: configuration file \"${SPARKCONFIG}\" is missing"
echo "Abort"
echo
fi
# .....................................check configuration file
if [ ! -f ~/.worker.json ]; then
cp .worker.json ~/
fi
. /etc/spot.conf
. ${SPARKCONFIG}
# .....................................package dependencies to be loaded by Spark job
if [ ! -d "${PYFILES_DIR}" ]; then
create_pyfiles_dir
fi
# .....................................build command
COMMAND="${SPARKSUBMIT}"
[ ! -z "${SPK_MASTER}" ] && COMMAND="${COMMAND} --master ${SPK_MASTER}"
[ ! -z "${SPK_DEPLOY_MODE}" ] && COMMAND="${COMMAND} --deploy-mode ${SPK_DEPLOY_MODE}"
[ ! -z "${SPK_EXEC}" ] && COMMAND="${COMMAND} --num-executors ${SPK_EXEC}"
[ ! -z "${SPK_DRIVER_MEM}" ] && COMMAND="${COMMAND} --driver-memory ${SPK_DRIVER_MEM}"
[ ! -z "${SPK_EXEC_CORES}" ] && COMMAND="${COMMAND} --conf spark.executor.cores=${SPK_EXEC_CORES}"
[ ! -z "${SPK_EXEC_MEM}" ] && COMMAND="${COMMAND} --conf spark.executor.memory=${SPK_EXEC_MEM}"
VAR=`find ${PYFILES_DIR} -type f | tr "\n" ","`
COMMAND="${COMMAND} --py-files ${VAR::-1} worker/__main__.py"
# .....................................execute command
${COMMAND} $@