2017-03-07 5 views
2

Hive 쿼리를 사용하여 Oozie 워크 플로를 실행하는 중 오류가 발생합니다. 다음은 워크 플로우를Oozie-FAILED : 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] 

및 I 그 안의 테이블을 쿼리 할 수 ​​있습니다.

무엇이 잘못 될 수 있습니까? 도와주세요. 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 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> 
.... 

참고 : 비슷한 문제를 해결하려면 하이브 메타 토어 IP를 적절하게 바꿉니다. 메타 스토어 세부 정보를 얻으려면/etc/hive/conf 디렉토리에있는 hive-site.xml 파일을 확인하십시오.

크레딧 : MapR