使用shell写一个spark提交脚本,包含spark基本配置,以及包含是否为kerberos环境的属性,区分提交不同环境下spark命令
时间: 2023-08-05 09:32:52 浏览: 46
好的,以下是一个示例的Spark提交脚本,可以根据实际情况进行修改:
```bash
#!/usr/bin/env bash
# Spark基本配置
SPARK_HOME=/path/to/spark
APP_NAME="my_spark_app"
MASTER_URL="yarn"
EXECUTOR_MEM="2g"
DRIVER_MEM="1g"
# 是否为Kerberos环境
IS_KERBEROS=false
if [[ $IS_KERBEROS == "true" ]]; then
# Kerberos环境下的Spark命令
$SPARK_HOME/bin/spark-submit \
--master $MASTER_URL \
--deploy-mode cluster \
--name "$APP_NAME" \
--executor-memory $EXECUTOR_MEM \
--driver-memory $DRIVER_MEM \
--keytab /path/to/keytab \
--principal username@REALM \
/path/to/app.jar \
[app arguments]
else
# 非Kerberos环境下的Spark命令
$SPARK_HOME/bin/spark-submit \
--master $MASTER_URL \
--deploy-mode cluster \
--name "$APP_NAME" \
--executor-memory $EXECUTOR_MEM \
--driver-memory $DRIVER_MEM \
/path/to/app.jar \
[app arguments]
fi
```
在脚本中,首先定义了一些Spark基本配置,例如Spark安装路径、应用名称、Master URL、Executor和Driver的内存等。然后,根据是否为Kerberos环境来选择不同的Spark命令进行提交。如果是Kerberos环境,则需要添加`--keytab`和`--principal`参数指定用户的keytab和principal;否则,只需提交基本的Spark命令即可。
你可以根据自己的实际情况进行修改,并在需要的时候替换`[app arguments]`为你的应用程序参数。