我有一个唯一的Yarn集群,它被许多向它提交spark应用程序的远程客户端使用。我需要在每个客户端设置HADOOP_CONF_DIR
环境变量,因为我的主是yarn(--master yarn
),但我不想将其从yarn集群分别复制到每个客户端。我想把HADOOP_CONF_DIR
在hdfs是可访问的所有客户端。现在,我如何在每个客户端中处理这个环境变量(HADOOP_CONF_DIR
)以访问和读取hdfs URL。
例如,当我这样使用时:
export HADOOP_CONF_DIR=hdfs://namenodeIP:9000/path/to/conf_dir
或者在python代码中我使用:
os.environ['HADOOP_CONF_DIR']=hdfs://namenodeIP:9000/path/to/conf_dir
他们两个都不适合我。
正确的形式是什么?我应该把它放在哪里呢?在代码中,在spark-env.sh中,在终端中,…
我认为这是不可能的。您需要这个变量也知道HDFS的namenode位置,而不仅仅是YARN。
如果你对客户端机器有控制权,你可以使用像Syncthing这样的工具来自动分发文件,但这假设你的集群内连接值与外部访问相同(即在所有服务器地址中使用FQDN值)。