我正在使用TestDFSIO和TeraSort基准测试工具进行几次Hadoop测试。我基本上是使用不同数量的数据节点进行测试,以评估处理能力和数据节点可扩展性的线性。
在上述过程中,我显然不得不多次重新启动所有Hadoop环境。每次重新启动Hadoop时,所有MapReduce作业都会被删除,作业计数器从"job_2013*_0001"再次启动。出于比较原因,对我来说,保持我之前启动的所有MapReduce作业非常重要。所以,我的问题是:
如何避免Hadoop在重新启动后删除所有MapReduce作业历史记录?¿是否有一些属性可以控制 Hadoop 环境重新启动后作业删除?
谢谢!
重新启动 Hadoop 后,不会立即删除 MR 作业历史记录日志,新作业将从 *_0001 中计数,并且只有 Hadoop 重新启动后启动的新作业才会显示在资源管理器 Web 门户上。实际上,yarn 默认有 2 个与日志相关的设置:
# this is where you can find the MR job history logs
yarn.nodemanager.log-dirs = ${yarn.log.dir}/userlogs
# this is how long the history logs will be retained
yarn.nodemanager.log.retain-seconds = 10800
默认的 ${yarn.log.dir} 在 $HADOOP_HONE/etc/hadoop/yarn-env.sh 中定义。
YARN_LOG_DIR="$HADOOP_YARN_HOME/logs"
顺便说一句,如果您使用的是Hadoop 1.X,也可以在 mapred-env.sh 中找到类似的设置