E0405: В запросе на отправку нет приложения или пути к lib - PullRequest
1 голос
/ 27 сентября 2019

Впервые запускаю программу mapreduce от Oozie.

Вот мой файл job.properties

nameNode=file:/usr/local/hadoop_store/hdfs/namenode
jobTracker=localhost:8088
queueName=default
oozie.wf.applications.path=${nameNode}/Config

Вот мой hdfs-site.xml

<configuration>
 <property>
  <name>dfs.replication</name>
  <value>1</value>
  <description>Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
  </description>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/usr/local/hadoop_store/hdfs/namenode</value>
 </property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/usr/local/hadoop_store/hdfs/datanode</value>
 </property>
</configuration>

Вот мой core-site.xml

<configuration>
 <property>
  <name>hadoop.tmp.dir</name>
  <value>/app/hadoop/tmp</value>
  <description>A base for other temporary directories.</description>
 </property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
</configuration>

Но когда я запускаю команду Оззи для запуска моей программы Mapreduce, выдается ошибка, что папка lib не найдена.Error: E0405 : E0405: Submission request doesn't have any application or lib path

oozie job -oozie http://localhost:11000/oozie -config job.properties -run

Я создал папку Config в HDFS и в этой папке тоже создал папку lib.В папке lib находится мой файл jar mapreduce, а внутри папки Config - мой файл workflow.xml.(Все в HDFS)

Я думаю, что я указал неправильный путь HDFS (nameNode) в файле job.propertie s.Вот почему он не может найти {nameNode}/Config, могу ли я узнать, пожалуйста, какой будет путь hdfs ..?

Спасибо

Обновление - 1 job.properties

nameNode=hdfs://localhost:8020
jobTracker=localhost:8088
queueName=default
oozie.wf.applications.path=${nameNode}/Config

все еще появляется та же ошибка:

Error: E0405 : E0405: Submission request doesn't have any application or lib path

Обновление - 2 workflow.xml в папке Config в HDFS.

<workflow-app xmlns="uri:oozie:workflow:0.4" name="simple-Workflow">
   <start to="RunMapreduceJob" />
   <action name="RunMapreduceJob">
      <map-reduce>
         <job-tracker>localhost:8088</job-tracker>
         <name-node>file:/usr/local/hadoop_store/hdfs/namenode</name-node>
         <prepare>
            <delete path="file:/usr/local/hadoop_store/hdfs/namenode"/>
         </prepare>
         <configuration>
            <property>
               <name>mapred.job.queue.name</name>
               <value>default</value>
            </property>
            <property>
               <name>mapred.mapper.class</name>
               <value>DataDividerByUser.DataDividerMapper</value>
            </property>
            <property>
               <name>mapred.reducer.class</name>
               <value>DataDividerByUser.DataDividerReducer</value>
            </property>
            <property>
               <name>mapred.output.key.class</name>
               <value>org.apache.hadoop.io.IntWritable</value>
            </property>
            <property>
               <name>mapred.output.value.class</name>
               <value>org.apache.hadoop.io.Text</value>
            </property>
            <property>
               <name>mapred.input.dir</name>
               <value>/data</value>
            </property>
            <property>
               <name>mapred.output.dir</name>
               <value>/dataoutput</value>
            </property>
         </configuration>
      </map-reduce>
      <ok to="end" />
      <error to="fail" />
   </action>
   <kill name="fail">
      <message>Mapreduce program Failed</message>
   </kill>
   <end name="end" />
</workflow-app>

1 Ответ

1 голос
/ 27 сентября 2019

Тег <namenode> не должен быть путем к файлу.Он должен указывать на NameNode базового кластера Hadoop, где Oozie должен выполнить задание MapReduce.Ваше имя узла должно быть значением fs.default.name из вашего core-site.xml.

nameNode=hdfs://localhost:9000

Кроме того, измените имя свойства oozie.wf.applications.path до oozie.wf.application.path (без s).

Добавьте свойство oozie.use.system.libpath=true в файл свойств.

Источник: Apache Oozie Мухаммед Камрул Ислам и Аравинд Шринивасан

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...