Last active
March 24, 2023 20:18
-
-
Save echang0929/9a9ccf7241f9221b7e59b9ec243e05f5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############## | |
### Prepare for env variables | |
export NS_NAME=spark-ext | |
export SA_NAME=spark | |
export CLN_NAME=spark-client | |
export POD_IMAG=gcr.io/spark-operator/spark-operator:v1beta2-1.2.3-3.1.1 | |
export SVC_NAME=$CLN_NAME-headless | |
export SVC_PORT=19987 | |
export CLS_ENDP="https://c2.us-south.containers.cloud.ibm.com:26165" | |
export EXR_INST=4 | |
export EXR_MORY=10g | |
export DRV_MORY=8g | |
############## | |
### Create all resources | |
# NS_NAME | |
kubectl create ns $NS_NAME \ | |
--dry-run=client -o yaml | kubectl apply -f - | |
kubectl config set-context --current --namespace=$NS_NAME | |
# SA_NAME | |
kubectl create sa $SA_NAME \ | |
--dry-run=client -o yaml | kubectl apply -f - | |
kubectl create clusterrolebinding ${SA_NAME}-${NS_NAME}-edit \ | |
--clusterrole=edit \ | |
--serviceaccount=$NS_NAME:$SA_NAME \ | |
--namespace=$NS_NAME \ | |
--dry-run=client -o yaml | kubectl apply -f - | |
# CLN_NAME and POD_IMAG | |
kubectl run $CLN_NAME \ | |
--image=$POD_IMAG \ | |
--image-pull-policy=Always \ | |
--serviceaccount=$SA_NAME \ | |
--dry-run=client -o yaml \ | |
--command=true -- sh -c "exec tail -f /dev/null" | kubectl apply -f - | |
# SVC_NAME and SVC_PORT | |
kubectl expose pod $CLN_NAME \ | |
--name=$SVC_NAME \ | |
--type=ClusterIP \ | |
--cluster-ip=None \ | |
--port=$SVC_PORT \ | |
--dry-run=client -o yaml | kubectl apply -f - | |
############## | |
### Start spark-shell | |
kubectl exec -it $CLN_NAME -- sh -c '\ | |
cd /opt/spark/; \ | |
./bin/spark-shell \ | |
--master k8s://"'$CLS_ENDP'" \ | |
--deploy-mode client \ | |
--conf spark.kubernetes.namespace="'$NS_NAME'" \ | |
--conf spark.kubernetes.container.image="'$POD_IMAG'" \ | |
--conf spark.kubernetes.container.image.pullPolicy=Always \ | |
--conf spark.kubernetes.authenticate.serviceAccountName="'$SA_NAME'" \ | |
--conf spark.kubernetes.driver.pod.name="'$CLN_NAME'" \ | |
--conf spark.executor.instances="'$EXR_INST'" \ | |
--conf spark.executor.memory="'$EXR_MORY'" \ | |
--conf spark.driver.memory="'$DRV_MORY'" \ | |
--conf spark.driver.host="'$SVC_NAME'" \ | |
--conf spark.driver.port="'$SVC_PORT'" \ | |
--conf spark.jars.ivy=/tmp/.ivy' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment