Google cloud platform 为什么Dataproc上的初始化操作脚本无法设置环境变量?
我试图设置一个包含Dataproc集群bucket的环境变量。基本上,我将这些行添加到初始化操作脚本中: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
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