xboost dmlc-submit吃命令引号(需要通过scl enable运行python作业)

时间:2016-04-19 18:46:04

标签: python-2.7 xgboost

我将RedHat 6.8用于我的YARN群集节点,它使用Python 2.6.6。为了在RedHat中获得Python 2.7,我们使用了软件集合。要激活软件集合,必须执行scl enable。例如,要打印Python版本,请执行scl enable python27 'python -V'

问题是当我尝试将我的Python作业提交给YARN时,如下所示

dmlc-submit --cluster=yarn scl enable python27 'python -V'

似乎吃掉了引号并产生了这个错误(而不是预期的Python 2.7.8):

Unable to open /etc/scl/prefixes/python!

这与在任何计算机上的bash提示符下执行以下操作时获得的输出相同

scl enable python27 python -V

我正在试图弄清楚如何欺骗argparse让它通过。

1 个答案:

答案 0 :(得分:0)

查看argparser(dmlc-core和xgboost使用的)源代码,试图找出任何可能的转义机制。找不到任何但发现dmlc-submit选择作业提交节点环境并在每个执行节点上重新创建。查看scl enable/opt/rh/python27/enable脚本,实现了LD_LIBRARY_PATH是重要的一个。 PATH也是由于某种原因它没有结转所以我现在指定我的SCL的完整路径提供python27

现在很高兴在我的YARN 2.7.1群集上运行

cd xgboost
dmlc-core/tracker/dmlc-submit --cluster=yarn --num-workers=9 --worker-cores=4 /opt/rh/python27/root/usr/bin/python tests/distributed/test_basic.py