我将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让它通过。
答案 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