Google cloud platform 为什么Dataproc上的初始化操作脚本无法设置环境变量?

Google cloud platform 为什么Dataproc上的初始化操作脚本无法设置环境变量?,google-cloud-platform,environment-variables,google-cloud-dataproc,Google Cloud Platform,Environment Variables,Google Cloud Dataproc,我试图设置一个包含Dataproc集群bucket的环境变量。基本上,我将这些行添加到初始化操作脚本中: BUCKET=$(/usr/share/google/get_metadata_value attributes/dataproc-bucket) cat << 'EOF' >> ~/.bashrc export BUCKET=${BUCKET} EOF source /root/.bashrc BUCKET=$(/usr/share/google/get\u

我试图设置一个包含Dataproc集群bucket的环境变量。基本上,我将这些行添加到初始化操作脚本中:

BUCKET=$(/usr/share/google/get_metadata_value attributes/dataproc-bucket)

cat << 'EOF' >> ~/.bashrc
export BUCKET=${BUCKET}
EOF

source /root/.bashrc
BUCKET=$(/usr/share/google/get\u metadata\u value attributes/dataproc BUCKET)
cat>~/.bashrc
导出BUCKET=${BUCKET}
EOF
source/root/.bashrc

然而,当我ssh到master中检查这一行是否被添加到bashrc文件时,我找不到任何东西。请你告诉我我做错了什么,或者你会如何处理这个问题?谢谢。

经过多次尝试后,我首先注意到,我在操作不同的路径,即
$HOME
/root/
。然后,
.bashrc
文件出现在两个路径下,最后的代码片段如下所示:

BUCKET=$(/usr/share/google/get_metadata_value attributes/dataproc-bucket)
echo "export BUCKET=${BUCKET}" | tee -a $HOME/.bashrc

source $HOME/.bashrc

如果您还有其他意见,请不要犹豫

初始化操作以
根目录运行。您可以更新
/etc/profile

MY_VAR="hello"
echo "export MY_VAR=${MY_VAR}" | tee -a /etc/profile
source /etc/profile

您可以通过以下方式更新bucket变量:

BUCKET=$(/usr/share/google/get_metadata_value attributes/dataproc-bucket)
echo "export BUCKET=${BUCKET}" | tee -a /etc/*bashrc
但是,为了在集群上使用spark,我还必须更新spark配置文件:

BUCKET=$(/usr/share/google/get_metadata_value attributes/dataproc-bucket)
echo "export BUCKET=${BUCKET}" | tee -a /etc/profile.d/spark_config.sh /etc/*bashrc /usr/lib/spark/conf/spark-env.sh