Oozie Spark2 Action выдает «Попытка добавить ({dependencyJar}) несколько раз в распределенный кеш». - PullRequest
0 голосов
/ 12 июня 2019

Получение приведенной ниже ошибки при попытке загрузить банку зависимостей для действия oozie spark2. Добавлен workflow.xml ниже.

Ошибка:

2019-06-12 07: 00: 35,140 ПРЕДУПРЕЖДЕНИЕ SparkActionExecutor: 523 - SERVER [manager-0] USER [root] GROUP [-] TOKEN [] APP [spark-wf] РАБОТА [0000068-190611183932696-oozie-корень-W] ACTION [0000068-190611183932696-oozie-root-W @ spark-node] Launcher ОШИБКА, причина: Главный класс [org.apache.oozie.action.hadoop.SparkMain], main () бросил исключение, Попытка добавить (hdfs: // $ {nameNode} / $ {workflowAppUri} / lib / $ {dependencyJar}) несколько раз в распределенный кеш.

workflow.xml

<workflow-app xmlns="uri:oozie:workflow:0.3" name="spark-wf">
    <start to="spark-node"/>
    <action name="spark-node">
        <spark xmlns="uri:oozie:spark-action:0.1">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <configuration>
                <property>
                    <name>mapred.job.queue.name</name>
                    <value>${queueName}</value>
                </property>
            </configuration>
            <master>yarn-cluster</master>
            <name>test_spark</name>
            <class>${className}</class>
            <jar>${workflowAppUri}/lib/${executableJar}</jar>
            <spark-opts>--jars ${workflowAppUri}/lib/${dependencyJar}</spark-opts>
            <arg>${arg1}</arg>
            <arg>${arg2}</arg>
        </spark>
        <ok to="end"/>
        <error to="fail"/>
    </action>
    <kill name="fail">
        <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name="end"/>
</workflow-app>

Это не та проблема, связанная с дублирующимися банками в каталоге oozie и spark2 sharelib. Убрали дубликаты банок в spark2 sharelib. Но это не помогает.

В чем может быть причина этого? Пожалуйста, помогите мне с этим !!!

1 Ответ

0 голосов
/ 13 июня 2019

Если мы добавим jar-файлы в каталог lib корневого каталога приложения, oozie автоматически распределяет jar-файлы в распределенный кеш. В моем случае я попытался добавить банку, которая уже находится в каталоге lib. Итак, мне просто нужно удалить строку ниже из моего определения рабочего процесса.

<spark-opts>--jars ${workflowAppUri}/lib/${dependencyJar}</spark-opts>

А также я проверил, что если вы хотите прикрепить jar-файлы, которых нет в вашем каталоге lib, вы можете упомянуть, как указано ниже, в определении вашего рабочего процесса.

<spark-opts>--jars ${nameNode}/tmp/{someJar}</spark-opts>
...