2017-03-07 269 views
2

在使用Hive查询运行Oozie工作流时出现错误。 这里是工作流Oozie - 失败:SemanticException [错误10072]:数据库不存在:testnamespace

<workflow-app xmlns='uri:oozie:workflow:0.5' name='reporting_W_errorAuditHiveQueryExe'> 
<start to="hive_report_fork"/> 
<fork name="hive_report_fork"> 
    <path start="hiveGSRLfile"/> 
    <path start="hiveNGSRLfile"/> 
    <path start="hiveNGsrlRAfile"/> 
</fork> 
<action name="hiveGSRLfile"> 
    <hive xmlns='uri:oozie:hive-action:0.2'> 
     <job-tracker>${jobTracker}</job-tracker> 
     <name-node>${nameNode}</name-node> 
     <script>${dir}/gsrlQery.hql</script> 
     <param>OutputDir=${jobOutput}</param> 
    </hive> 
    <ok to="joining"/> 
    <error to="joining"/> 
</action> 
<action name="hiveNGSRLfile"> 
    <hive xmlns='uri:oozie:hive-action:0.2'> 
     <job-tracker>${jobTracker}</job-tracker> 
     <name-node>${nameNode}</name-node> 
     <script>${dir}/nongsrlQuery.hql</script> 
     <param>OutputDir=${jobOutput}</param> 
    </hive> 
    <ok to="joining"/> 
    <error to="joining"/> 
</action> 
<action name="hiveNGsrlRAfile"> 
    <hive xmlns='uri:oozie:hive-action:0.2'> 
     <job-tracker>${jobTracker}</job-tracker> 
     <name-node>${nameNode}</name-node> 
     <script>${dir}/nongsrlRAQuery.hql</script> 
     <param>OutputDir=${jobOutput}</param> 
    </hive> 
    <ok to="joining"/> 
    <error to="joining"/> 
</action> 
<join name= "joining" to="Success"/> 
<action name="Success"> 
    <email xmlns="uri:oozie:email-action:0.1"> 
     <to>${failureEmailToAddress}</to> 
     <subject>Success</subject> 
     <body> 
      The workflow ${wf:name()} with id ${wf:id()} failed 
      [${wf:errorMessage(wf:lastErrorNode())}]. 
     </body> 
    </email> 
    <ok to="end" /> 
    <error to="fail" /> 
</action> 
<action name="failure"> 
    <email xmlns="uri:oozie:email-action:0.1"> 
     <to>${failureEmailToAddress}</to> 
     <subject>Failure</subject> 
     <body> 
      The workflow ${wf:name()} with id ${wf:id()} failed 
      [${wf:errorMessage(wf:lastErrorNode())}]. 
     </body> 
    </email> 
    <ok to="end" /> 
    <error to="fail" /> 
</action> 
<kill name="fail"> 
    <message>Workflow failed</message> 
</kill> 
<end name="end"/> 

这里是Oozie的属性文件

oozie.wf.application.path=${deploymentPath}/workflows/errorAuditHiveQueryExe.xml 
deploymentPath=/user/amin/deploy_178 
jobTracker=localhost:8032 
nameNode=hdfs://nameservice1 
dir=${deploymentPath}/data-warehouse/temp 
[email protected] 
jobOutput=${dir} 
oozie.use.system.libpath=true 

这里是我的错误:与

FAILED: SemanticException [Error 10072]: Database does not exist: testnamespace 
Intercepting System.exit(10072) 
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.HiveMain], exit code [10072] 

然而,命名空间中我可以查询它里面的表。

这里有什么问题?请帮忙。 我使用CDH 5.5.2 Running Hive 1.0

+0

你检查出这个问题? http://stackoverflow.com/questions/29670830/hive-hiveimport-failed-semanticexception-error-10072-database-does-not-exis –

+0

是的,我已经做了,但是这与我的问题无关。 –

回答

3

经过在互联网上的不懈研究,我能够解决问题的解决方案。 我已经添加了一个配置为Hive作业使用Metastore服务器,它工作。

以下是我对Hive操作所做的工作。

.... 
<hive xmlns='uri:oozie:hive-action:0.2'> 
      <job-tracker>${jobTracker}</job-tracker> 
      <name-node>${nameNode}</name-node> 
      <configuration> 
       <property> 
        <name>hive.metastore.uris</name> 
        <value>thrift://10.155.1.63:9083</value> 
       </property> 
      </configuration> 
      <script>${dir}/gsrlQery.hql</script> 
      <param>OutputDir=${jobOutput}</param> 
     </hive> 
.... 

注意:如果您试图修复类似问题,请相应地替换配置单元metatore ip。要获取Metastore详细信息,请检查位于/ etc/hive/conf目录中的hive-site.xml文件。

信用:MapR

相关问题