【问题标题】:How to modifly SPARK_SUBMIT_OPTIONS using ansible如何使用 ansible 修改 SPARK_SUBMIT_OPTIONS
【发布时间】:2021-06-03 21:42:59
【问题描述】:

我需要使用 ansible 用一些附加值修改下面的行。 这是 /etc/zeppelin/conf/zeppelin-env.sh 文件中的默认值。

export SPARK_SUBMIT_OPTIONS="$SPARK_SUBMIT_OPTIONS --conf 'spark.executorEnv.PYTHONPATH=/usr/lib/spark/python/lib/py4j-src.zip:/usr/lib/spark/python/:<CPS>{{PWD}}/pyspark.zip<CPS>{{PWD}}/py4j-src.zip' --conf spark.yarn.isPython=true"

我需要将其更改为如下所示。

export SPARK_SUBMIT_OPTIONS="$SPARK_SUBMIT_OPTIONS --conf 'spark.executorEnv.PYTHONPATH=/usr/lib/spark/python/lib/py4j-src.zip:/usr/lib/spark/python/:<CPS>{{PWD}}/pyspark.zip<CPS>{{PWD}}/py4j-src.zip' --conf spark.yarn.isPython=true --jars /usr/local/mysql-connector-java-5.1.48.jar,/usr/local/spark-csv-1.5.0-s_2.10.jar,/usr/local/commons-csv-1.4.jar --driver-memory 2G"

我尝试注释掉默认行并添加如下所示的新行。

    - name: Comment out spark submit options
      replace:
        dest: /etc/zeppelin/conf/zeppelin-env.sh
        regexp: '^export SPARK_SUBMIT_OPTIONS='
        replace: '#export SPARK_SUBMIT_OPTIONS='
    - name: update spark submit options.
      lineinfile:
        path: /etc/zeppelin/conf/zeppelin-env.sh
        line: export SPARK_SUBMIT_OPTIONS="$SPARK_SUBMIT_OPTIONS --conf 'spark.executorEnv.PYTHONPATH=/usr/lib/spark/python/lib/py4j-src.zip:/usr/lib/spark/python/:<CPS>{{PWD}}/pyspark.zip<CPS>{{PWD}}/py4j-src.zip' --conf spark.yarn.isPython=true --jars /usr/local/flytxt/zeppelin/custom-lib/flytxtSparkLib/mysql-connector-java-5.1.48.jar,/usr/local/flytxt/zeppelin/custom-lib/flytxtSparkLib/spark-csv-1.5.0-s_2.10.jar,/usr/local/flytxt/zeppelin/custom-lib/flytxtSparkLib/commons-csv-1.4.jar --driver-memory 2G"

但是,当我尝试使用 ansible.builtin.file 模块修改该行时,由于其中存在值 {{PWD}},我遇到了一些错误。 Ansible 将其检测为模板变量并引发异常。是否有任何选项可以使用任何 ansible 模块来解决问题。

【问题讨论】:

    标签: ansible


    【解决方案1】:

    如果您需要在文本中使用 {{mustashes}} 而没有 Jinja 插值的“帮助”,则可以使用 !!unsafe 类型。

    - hosts: localhost
      tasks:
       - debug:
           msg: !!unsafe {{ inventory_hostname }}
    

    它将打印“{{ inventory_hostname }}”。对 lineinfile 模块的每个参数使用 !!unsafe 以避免插值。

    更多信息:https://docs.ansible.com/ansible/latest/user_guide/playbooks_advanced_syntax.html#unsafe-or-raw-strings

    【讨论】:

    • 谢谢!。声明一个不安全的变量 spark_pwd: !unsafe '{{PWD}}' 并替换该行中的变量 ({{ spark_pwd }}) 解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多