Hi Paul, Thanks for the tip. I added the ConnectionPassword param to the hive-site.xml (which was the only thing missing) and then tried your suggestion.
Unfortunately, it can't get out of the starting gate. I get the error message: org.apache.oozie.action.ActionExecutorException: JA008: File does not exist: /etc/hive/conf/hive-site.xml I tried: * "hive-site.xml", * the above, which is a symlink * the actual file that the symlink points to * opening the permissions to the fiile and its parent dirs to 777. All variations failed with the same error message. -Michael On Thu, Oct 17, 2013 at 4:58 PM, Paul Chavez < [email protected]> wrote: > I put the metastore database connection settings into a hive-site.xml file > bundled with my workflow definition and reference it using the <job-xml> > element within the Hive action. My hive-site.xml looks almost exactly the > same as your hive-settings.xml. > > I used to be able to explain what exactly is happening as I had a > similarly maddening learning curve setting it up but it's been over a year > now and I can't remember the details. Give it a shot and let us know how it > goes? > > Snippet from a workflow template I use: > <action name="Process"> > <hive xmlns="uri:oozie:hive-action:0.2"> > <job-tracker>${jobTracker}</job-tracker> > <name-node>${nameNode}</name-node> > <job-xml>hive-site.xml</job-xml> > <script>${wf_script_path}</script> > <param>...</param> > </hive> > <ok to="end"/> > <error to="FailureEmail"/> > </action> > > Hope that helps, > Paul Chavez > > > -----Original Message----- > From: [email protected] [mailto:[email protected]] > Sent: Thursday, October 17, 2013 1:47 PM > To: [email protected] > Subject: Why don't tables I create in Hive jobs in Oozie stay around? > > I'm evaluating Oozie for my team and work to decide if we want to use it. > I have been working through the examples that Apache Oozie project has > for download. I have spent much of the day trying to get basic Hive jobs > to work with mostly disappointing results. I'd like some help on what to > do. > > I've tried using the hive action and running hive via a shell action. > After struggling with write permissions to the /user/hive HDFS warehouse > directory, the former only partially works (even when it reports success) > and the latter never works and doesn't report any useful errors. > > > *Hive via Hive action:* > > $ tree hive2 > hive2 > |-- hive-settings.xml > |-- job.properties > |-- script.sql > |-- workflow.xml > > > $ cat script.sql > DROP TABLE IF EXISTS yytest2; > > CREATE EXTERNAL TABLE yytest2 (x int) > ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' > LOCATION '/user/root/examples/input-data/yytable2/yytable'; > > INSERT OVERWRITE DIRECTORY '/user/root/examples/output-data/hive2yy' SELECT > * FROM yytest2; > > CREATE TABLE IF NOT EXISTS xmas (x int) > ROW FORMAT DELIMITED FIELDS TERMINATED BY ','; > > LOAD DATA INPATH '/user/root/examples/input-data/yytable2/yytable' INTO > TABLE xmas; > > > $ cat workflow.xml > <?xml version="1.0" encoding="UTF-8"?> > <workflow-app xmlns="uri:oozie:workflow:0.2" name="hive-wf"> > <start to="hive-node"/> > > <action name="hive-node"> > <hive xmlns="uri:oozie:hive-action:0.2"> > <job-tracker>${jobTracker}</job-tracker> > <name-node>${nameNode}</name-node> > <prepare> > <delete path="${nameNode}/user/${wf:user()}/${examplesRoot > }/output-data/hive2"/> > <mkdir path="${nameNode}/user/${wf:user()}/${examplesRoot > }/output-data"/> > </prepare> > <configuration> > <property> > <name>mapred.job.queue.name</name> > <value>${queueName}</value> > </property> > <property> > <name>oozie.hive.defaults</name> > <value>hive-settings.xml</value> > </property> > </configuration> > <script>script.sql</script> > </hive> > <ok to="end"/> > <error to="fail"/> > </action> > > <kill name="fail"> > <message>BOO HOO2: Hive2 failed, error message[${wf:errorMessage(wf: > lastErrorNode())}]</message> > </kill> > <end name="end"/> > </workflow-app> > > > $ cat job.properties > nameNode=hdfs://10.230.138.159:8020 > jobTracker=http://10.230.138.159:50300 > > queueName=default > examplesRoot=examples > > oozie.use.system.libpath=true > > oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot > }/apps/hive2 > > > $ cat hive-settings.xml > <?xml version="1.0"?> > <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> > > <configuration> > > <!-- Hive Execution Parameters --> > <property> > <name>javax.jdo.option.ConnectionURL</name> > <value>jdbc:mysql://10.230.138.159:3306/hive?createDatabaseIfNotExist > =true</value> > <description>JDBC connect string for a JDBC metastore</description> > </property> > > <property> > <name>javax.jdo.option.ConnectionDriverName</name> > <value>com.mysql.jdbc.Driver</value> > <description>Driver class name for a JDBC metastore</description> > </property> > > <property> > <name>javax.jdo.option.ConnectionUserName</name> > <value>hive</value> > <description>username to use against metastore database</description> > </property> > > <property> > <name>javax.jdo.option.ConnectionPassword</name> > <value>hiveuser</value> > <description>password to use against metastore database</description> > </property> > > <property> > <name>javax.jdo.PersistenceManagerFactoryClass</name> > <value>org.datanucleus.jdo.JDOPersistenceManagerFactory</value> > <description>class implementing the jdo persistence</description> > </property> > > </configuration> > > > When I run it now reports SUCCESS. > > > It worked in the sense that the > /user/root/examples/output-data/hive2yy/000000_0 file is present in > HDFS(created via the first table) and the > /user/root/examples/input-data/yytable2/yytable/integers.out file is > missing (because it got moved when Hive created the "xmas" managed table). > > But the tables I just created are not present in Hive nor are they in the > Hive metastore (MySQL): > $ hive -e "show tables" > OK > tab_name > Time taken: 2.153 seconds > > But they must have been created in order for the other results to be true. > > When I run the script.sql by hand in Hive it all works fine and the tables > remain. *Why do the tables disappear when I run this via Oozie? > * > > > This email is long enough. I'll send my other issue (Hive via shell > action) in another email. > > * > * > *For reference:* > I'm using a CentOS VMWare VM running Hortonworks HDP 1.3 Oozie version: > 3.3.2.1.3.2.0-111 Hive version: 0.11 (0.11.0.1.3.2.0-111) > > > Thanks for any help you can provide, > -Michael >
