Не удалось загрузить правильный файл 'output_xml.properties' для метода вывода 'xml' (проверьте CLASSPATH) - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь создать рабочий процесс sqoop с использованием Apache oozie, но когда я выполняю скрипт, я получаю сообщение об ошибке ниже:

Caused by: com.sun.org.apache.xml.internal.serializer.utils.WrappedRuntimeException: Could not load the propery file 'output_xml.properties' for output method 'xml' (check CLASSPATH)

Когда я проверяю журналы, он говорит, что ошибка вызвана:

Caused by:com.sun.org.apache.xml.internal.serializer.utils.WrappedRuntimeException: Could not load the propery file 'output_xml.properties' for output method 'xml' (check CLASSPATH)

Workflow.xml

<?xml version="1.0" encoding="UTF-8"?>
<workflow-app xmlns="uri:oozie:workflow:0.2" name="sqoop-wf">
<start to="sqoop-node" />
<action name="sqoop-node">
    <sqoop xmlns="uri:oozie:sqoop-action:0.2">
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <job-xml>sqoop-site.xml</job-xml>
        <configuration>
            <property>
                <name>mapred.compress.map.output</name>
                <value>true</value>
            </property>
            <property>
                <name>mapred.job.queue.name</name>
                    <value>${queueName}</value>
            </property>
        </configuration>
        <command>import --libjars /usr/lib/sqoop/mysql-connector-java-5.1.30-bin.jar --driver com.mysql.jdbc.Driver --connect "jdbc:mysql://mydatabase_Name.rds.amazonaws.com:3306/DB_NAME" --username NAGESHC --password nagesh@1234 --table TABLE_FIN --target-dir /user/hive/ooziesqoop -m 1 </command>
        <file>/usr/lib/sqoop/mysql-connector-java-5.1.30-bin.jar</file>
   </sqoop>
    <ok to="end"/>
    <error to="fail"/>
 </action>
    <kill name="fail">
         <message>Sqoop failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
 <end name="success"/>

Job.properties

nameNode=hdfs://ip-xxxxxxxxxxx.compute.internal:8020
jobTracker=ip-xxxxxxxxxxx.compute.internal:8032
queueName=default
oozie.wf.application.path=hdfs://ip-xxxxxxxxxxx.compute.internal:8020/user/oozie/workflow.xml
outputDir=distcp
oozie.use.system.libpath=true
oozie.libpath=${nameNode}/user/oozie/

Я выполняю скрипт, используя следующую команду:

oozie job -oozie http://ip-xxxxxxxxxxx.compute.internal:11000/oozie -config /home/job.properties -submit

Это связано с CLASSPATH, я думаю?

1 Ответ

0 голосов
/ 29 ноября 2018

Вы проверили ваш workflow.xml с помощью инструмента валидатора?Было бы полезно, если вы звоните, в котором используется Hadoop (cloudera или hortonwork).

$ oozie validate myApp/workflow.xml

Драйвер mysql должен быть установлен по умолчанию, и вам не нужно его указывать.Или его можно сделать доступным в папке sqoop / lib, так что sqoop примет его автоматически. Альтернативно, вы можете сначала проверить, правильно ли работает ваша команда sqoop или нет на компьютере кластера.Если это работает, то это может быть проблема конфигурации XML.

sqoop import --libjars /usr/lib/sqoop/mysql-connector-java-5.1.30-bin.jar --driver com.mysql.jdbc.Driver --connect "jdbc:mysql://Database_Hostname:xxxx/DB_name" --username xxxx --password nxxxx@xxxx --table table_Name --target-dir /user/hive/ooziesqoop -m 1
...