You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@oozie.apache.org by myelinji <my...@aliyun.com> on 2015/06/26 03:33:50 UTC

How can I submit a hive job and run successfully using web service api?

Hi,all:   I have use oozie to submit a hive action through it's web service api, the whole cmd is as follows:curl  --header "Content-type:application/xml;charset=UTF-8" -d "<configuration>
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://localhost:9000</value>
      </property>
      <property>
         <name>yarn.resourcemanager.scheduler.address</name>
         <value>localhost:8030</value>
      </property>
      <property>
        <name>hadoop.proxyuser.myelinyue.hosts</name>
        <value>*</value>
      </property>
      <property>
        <name>hadoop.proxyuser.myelinyue.groups</name>
        <value>*</value>
      </property>
      <property>
        <name>oozie.use.system.libpath</name>
        <value>true</value>
      </property>
      <property>
          <name>mapred.job.tracker</name>
          <value>localhost:8032</value>
      </property>
      <property>
          <name>user.name</name>
          <value>jiyue</value>
      </property>
      <property>  
        <name>hive.metastore.local</name>  
        <value>true</value>  
        <description>controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM</description>  
      </property>  
      <property>
        <name>oozie.hive.defaults</name>
        <value>/user/jiyue/share/lib/lib_20150622145359/hive-conf.xml</value>
      </property>
      <property>
        <name>oozie.hive.script</name>
        <value>
         select * from default.table_name;
        </value>
      </property>
      <property>
        <name>oozie.hive.script.params.size</name>
        <value>2</value>
      </property>
    <property>
      <name>oozie.hive.script.params.0</name>
      <value>OUTPUT=/user/jiyue/examples/output-data/hive</value>
    </property>
    <property>
      <name>oozie.hive.script.params.1</name>
      <value>INPUT=/user/jiyue/warehouse</value>
    </property>
    <property>
      <name>oozie.proxysubmission</name>
      <value>true</value>
    </property>
    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    </property>
    
    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
    </property>
    
    <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>admin</value>
    </property>
    
    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>admin</value>
    </property>
    <property>
      <name>oozie.libpath</name>
      <value>hdfs://localhost:9000/user/jiyue/share/lib/lib_20150625104541</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/jiyue/warehouse</value>
        <description>location of default database for the warehouse</description>
    </property>
    </configuration>" -i http://127.0.0.1:11000/oozie/v1/jobs?jobtype=hiveWhen I use hive cmd, it is work:
but when i execute the "curl" as above, it's report some errors:42666 [uber-SubtaskRunner] ERROR hive.ql.metadata.Hive  - NoSuchObjectException(message:default.table_name table not found)
        at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.get_table(HiveMetaStore.java:1560)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:105)
        at com.sun.proxy.$Proxy41.get_table(Unknown Source)
        at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getTable(HiveMetaStoreClient.java:997)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:89)
        at com.sun.proxy.$Proxy42.getTable(Unknown Source)
        at org.apache.hadoop.hive.ql.metadata.Hive.getTable(Hive.java:976)
        at org.apache.hadoop.hive.ql.metadata.Hive.getTable(Hive.java:918)
        at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.getMetaData(SemanticAnalyzer.java:1223)
        at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.getMetaData(SemanticAnalyzer.java:1192)
        at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:9209)
        at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:327)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:422)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:322)
        at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:975)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1040)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:911)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:901)
        at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:423)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:359)
        at org.apache.hadoop.hive.cli.CliDriver.processReader(CliDriver.java:456)
        at org.apache.hadoop.hive.cli.CliDriver.processFile(CliDriver.java:466)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:748)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:686)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
        at org.apache.oozie.action.hadoop.HiveMain.runHive(HiveMain.java:306)
        at org.apache.oozie.action.hadoop.HiveMain.run(HiveMain.java:290)
        at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:47)
        at org.apache.oozie.action.hadoop.HiveMain.main(HiveMain.java:68)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:236)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
        at org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.runSubtask(LocalContainerLauncher.java:370)
        at org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.runTask(LocalContainerLauncher.java:295)
        at org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.access$200(LocalContainerLauncher.java:181)
        at org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler$1.run(LocalContainerLauncher.java:224)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

I'm very confused about this output. Should I use some other method to specify the hive metastore through oozie web service api? My software configuration is as follows:
1. hadoop 2.72. hive 1.2.03. oozie 4.2.0
Is there anyone can help me ? I am a new comer here and I'm very grateful to you for your help.
Thanks 
   myelinji