2016-05-08 165 views
0

我通過Oozie的火花行動運行中的紗線客戶機模式火花的工作。我需要指定驅動程序和應用程序主相關設置。我嘗試配置oozie記錄的spark-opts,但它不起作用。Oozie的火花行動 - 如何指定火花選擇採用

下面是從Oozie的DOC:

Example: 

<workflow-app name="sample-wf" xmlns="uri:oozie:workflow:0.1"> 
    ... 
    <action name="myfirstsparkjob"> 
     <spark xmlns="uri:oozie:spark-action:0.1"> 
      <job-tracker>foo:8021</job-tracker> 
      <name-node>bar:8020</name-node> 
      <prepare> 
       <delete path="${jobOutput}"/> 
      </prepare> 
      <configuration> 
       <property> 
        <name>mapred.compress.map.output</name> 
        <value>true</value> 
       </property> 
      </configuration> 
      <master>local[*]</master> 
      <mode>client<mode> 
      <name>Spark Example</name> 
      <class>org.apache.spark.examples.mllib.JavaALS</class> 
      <jar>/lib/spark-examples_2.10-1.1.0.jar</jar> 
      <spark-opts>--executor-memory 20G --num-executors 50</spark-opts> 
      <arg>inputpath=hdfs://localhost/input/file.txt</arg> 
      <arg>value=2</arg> 
     </spark> 
     <ok to="myotherjob"/> 
     <error to="errorcleanup"/> 
    </action> 
    ... 
</workflow-app> 

在上述火花OPTS被指定爲--executor-memory 20G --num-executors 50

而在說明它說,在同一頁上:

「的火花OPTS元素,如果目前,包含可被傳遞到驅動器的火花點火的選項列表。火花可以通過指定「鍵--conf =值」此處被傳遞配置選項」

所以要根據文件應該是--conf executor-memory=20G

其中之一就在這裏呢?我嘗試了兩個,但它似乎不工作。我在yarn-client模式下運行,所以主要想設置驅動程序相關的設置。我認爲這是我可以設置驅動程序設置的唯一地方。

<spark-opts>--driver-memory 10g --driver-java-options "-XX:+UseCompressedOops -verbose:gc" --conf spark.driver.memory=10g --conf spark.yarn.am.memory=2g --conf spark.driver.maxResultSize=10g</spark-opts> 

<spark-opts>--driver-memory 10g</spark-opts> 

在實際驅動程序jvm中,上述驅動程序的相關設置都沒有設置。我在linux進程信息中驗證了它。

參考:https://oozie.apache.org/docs/4.2.0/DG_SparkActionExtension.html

回答

2

我沒發現有什麼問題。在紗線客戶端模式下,您無法使用<spark-opts>--driver-memory 10g</spark-opts>指定與驅動程序相關的參數,因爲您的驅動程序(oozie啓動程序作業)在該點之前已啓動。這是一個oozie啓動器(這是一個mapreduce工作)啓動你的實際火花和任何其他工作,併爲該工作spark-opts是相關的。但設置在紗線的客戶端模式驅動程序的參數,你需要在Oozie的工作流程基本配置configuration

<configuration> 
       <property> 
         <name>oozie.launcher.mapreduce.map.memory.mb</name> 
         <value>8192</value> 
       </property> 
       <property> 
         <name>oozie.launcher.mapreduce.map.java.opts</name> 
         <value>-Xmx6000m</value> 
       </property> 
       <property> 
         <name>oozie.launcher.mapreduce.map.cpu.vcores</name> 
         <value>24</value> 
       </property> 
       <property> 
        <name>mapreduce.job.queuename</name> 
        <value>default</value> 
       </property> 
      </configuration> 

我還沒有嘗試過的紗線集羣模式,但火花OPTS可以爲駕駛員設置那裏工作。但我的問題是關於紗線客戶端模式。

0

嘗試改變<master>local[*]</master><master>yarn</master>

1

<spark-opts>--executor-memory 20G</spark-opts>應該理想地工作。

而且,嘗試使用:

<master>yarn-cluster</master> 
<mode>cluster</mode> 

可能是指配置標籤「星火配置選項可以通過指定‘--conf的key = value’在這裏傳遞」。 對於防爆: --conf mapred.compress.map.output=true將轉化:

<configuration> 
    <property> 
     <name>mapred.compress.map.output</name> 
     <value>true</value> 
    </property> 
</configuration>