2017-08-08 111 views
0

我试图使用Oozie Java动作来读取Hive表,并且作业失败,错误: “java.io.IOException:NoSuchObjectException(message:sampleDB。测试表未找到)”使用Oozie Java动作无法连接到Hive

该表确实存在,如果我本身执行JAR,它完成罚款和做没有问题蜂巢连接。

Oozie的一步:

<action name="sample-step"> 
    <java> 
     <job-tracker>${jobTracker}</job-tracker> 
     <name-node>${nameNode}</name-node> 
     <configuration> 
      <property> 
       <name>mapred.job.queue.name</name> 
       <value>${queueName}</value> 
      </property> 
     </configuration> 
     <main-class>com.test.mr.SampleDriver</main-class> 
     <java-opts></java-opts> 
     <arg>${DBName}</arg> 
     <arg>${InputTable}</arg> 
     <arg>${OutputTable}</arg> 
    </java> 
    <ok to="next-step" /> 
    <error to="failure-step" /> 
</action> 

我也试着设置蜂箱/ conf目录/蜂房的site.xml,但没有奏效

我能做些什么来解决这个问题?由于

+0

你是什么意思_“set hive/conf/hive-site.xml”_? **按照既定规则** >>上传有效'蜂房site.xml'到HDFS,并告诉Oozie的在运行时下载它(在纱线容器的CWD,因此在CLASSPATH中)与''命令。 –

回答

0

嗨@Samson Scharfrichter。感谢您的答复。我添加了如下所示的hive-site.xml,但它不起作用。是否需要在Map Reduce作业中添加任何其他配置。谢谢

<action name="sample-step"> 
    <java> 
     <job-tracker>${jobTracker}</job-tracker> 
     <name-node>${nameNode}</name-node> 
     <job-xml>${hiveSite}</job-xml> 
     <configuration> 
      <property> 
       <name>mapred.job.queue.name</name> 
       <value>${queueName}</value> 
      </property> 
     </configuration> 
     <main-class>com.test.mr.SampleDriver</main-class> 
     <java-opts></java-opts> 
     <arg>${DBName}</arg> 
     <arg>${InputTable}</arg> 
     <arg>${OutputTable}</arg> 
     <file>${hiveSite}#${hiveSite}</file> 
    </java> 
    <ok to="next-step" /> 
    <error to="failure-step" /> 
</action>