代码之家  ›  专栏  ›  技术社区  ›  Edi Bice

xboostdmlcsubmiteats命令引号(需要通过scl-enable运行python作业)

  •  0
  • Edi Bice  · 技术社区  · 8 年前

    我的YARN集群节点使用RedHat 6.8,它使用Python 2.6.6。为了在RedHat中获得Python2.7,我使用了Software Collections。要激活软件集合,必须启用scl。例如,打印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 回复  |  直到 8 年前
        1
  •  0
  •   AbdealiLoKo    8 年前

    查看了argparser(dmlc核心和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