我正在编写代码来创建一个临时的Hadoop集群.与大多数Hadoop集群不同,我需要将日志,HDFS文件等位置放在每次启动集群时不同的特定临时网络位置.该网络目录将在运行时生成 ; 我在检查shell脚本hadoop-env.sh
和XML文件时都不知道目录名称core-default.xml
.
在签到时:我可以修改shell脚本hadoop-env.sh
和XML文件之类的core-default.xml
.
在运行时:我生成了我想用于数据存储的临时目录.
我可以指示大部分的Hadoop通过指定环境变量喜欢用这个临时目录HADOOP_LOG_DIR
和HADOOP_PID_DIR
,如有必要,我可以修改shell脚本来读取这些环境变量.
然而,HDFS决定了它的本地目录通过在XML文件中,没有环境变量或shell脚本中定义的两个属性来存储文件系统:hadoop.tmp.dir
在核心default.xml中和dfs.datanode.data.dir
在HDFS-default.xml中.
有没有办法编辑这些XML文件来确定hadoop.tmp.dir
运行时的值?或者,有没有办法使用环境变量来覆盖XML配置的值hadoop.tmp.dir
?