2016-05-08 2 views
0

Я работаю искрами в режиме пряжи-клиента через искр искр. Мне нужно указать параметры, связанные с драйвером и мастером приложения. Я попробовал настроить искровые опционы, как описано в oozie, но не работает.oozie искровое действие - как указать искрообразование

Вот от oozie документ:

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> 

В этих свечей ОПТС определяются как --executor-memory 20G --num-executors 50

время на той же странице, в описании говорится:

«Искра-КЛЮЧ элемент, если присутствует, содержит список параметров искры, которые могут быть переданы в искровой драйвер. Параметры конфигурации искры можно передать, указав «-conf key = value» здесь »

, поэтому в соответствии с документом он должен быть --conf executor-memory=20G

, который здесь прямо здесь? Я попробовал оба, но это не работает. Я работаю в режиме «пряжа-клиент», поэтому в основном хочу настроить параметры, связанные с драйвером. Я думаю, что это единственное место, где я могу настроить параметры драйвера.

<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) запускает вашу настоящую искру и любую другую работу, и для этой работы важно исправить ошибки. Но для установки параметров драйвера в режиме пряжи клиента необходимо настроить в основном configuration в oozie процессе:

<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> 

Я не пробовал режим пряжи кластера, но искровой КЛЮЧ может работать для установки там драйвера. Но мой вопрос касался режима пряжи-клиента.

0

попытка изменения <master>local[*]</master> в <master>yarn</master>

1

<spark-opts>--executor-memory 20G</spark-opts> должен работать идеально.

Кроме того, попробуйте использовать:

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

«Параметры конфигурации Спарк могут быть переданы, указав„--conf ключ = значение“здесь», вероятно, ссылаясь на тег конфигурации. Для Ex: --conf mapred.compress.map.output=true перевести бы:

<configuration> 
    <property> 
     <name>mapred.compress.map.output</name> 
     <value>true</value> 
    </property> 
</configuration> 
Смежные вопросы