You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@oozie.apache.org by Jan Hentschel <ja...@ultratendency.com> on 2016/06/03 06:49:23 UTC

Passing username and password to Hive2 action

Hi,

 

I have a cluster running HDP 2.3.4 with Oozie 4.2.0 installed on it. The cluster doesn’t use Kerberos. I’m trying to run a Hive2 action similar to the following

 

<workflow-app xmlns="uri:oozie:workflow:0.4" name="hive-wf">

    <parameters>...</parameters>

   

    <start to="hive-load"/>

 

    <action name="hive-load">

        <hive2 xmlns="uri:oozie:hive2-action:0.1">

            <job-tracker>${jobTracker}</job-tracker>

            <name-node>${nameNode}</name-node>

            <job-xml>${nameNode}/oozie/hive-site.xml</job-xml>

            <jdbc-url>${hiveServer}</jdbc-url>

            <script>${nameNode}/oozie /load-script.hql</script>

            <param>...</param>

        </hive2>

       

        <ok to="end"/>

        <error to="fail"/>

    </action>

 

    ...

 

        <ok to="end"/>

        <error to="fail"/>

    </action>

   

    <kill name="fail">

        <message>Hive failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>

    </kill>

    <end name="end"/>

</workflow-app>

 

As far as I know the Hive2Main class is connecting to Beeline to run the Hive script. When connecting to Beeline via the command line I either pass the –n <username> argument to it (which isn’t possible in the Hive2 action because of the filtering of this argument) or I get prompted for my username and password when running !connect <jdbc-url> inside beeline. When using the anonymous user I don’t have the permissions to access the tables.

 

How can I pass the username and password to the Hive2 action to Beeline in the workflow required for connecting to the tables? Thanks for your help!

 

Jan


Re: Passing username and password to Hive2 action

Posted by Jan Hentschel <ja...@ultratendency.com>.
Thanks a lot! This seems to be the solution. I misinterpreted the meaning of the password tag of the Hive2 action.

 

Jan

 

From: Peter Cseh <ge...@cloudera.com>
Reply-To: <us...@oozie.apache.org>
Date: Friday, June 3, 2016 at 12:41 PM
To: <us...@oozie.apache.org>
Subject: Re: Passing username and password to Hive2 action

 

Hi,

 

The Hive2 action will use the name of the user who runs the workflow.

The password can be defined using the <password> tag.

 

There is a broader description of this at

https://oozie.apache.org/docs/4.2.0/DG_Hive2ActionExtension.html

 

BRs

gp

 

On Thu, Jun 2, 2016 at 11:49 PM, Jan Hentschel <

jan.hentschel@ultratendency.com> wrote:

 

Hi,

 

 

 

I have a cluster running HDP 2.3.4 with Oozie 4.2.0 installed on it. The

cluster doesn’t use Kerberos. I’m trying to run a Hive2 action similar to

the following

 

 

 

<workflow-app xmlns="uri:oozie:workflow:0.4" name="hive-wf">

 

     <parameters>...</parameters>

 

 

 

     <start to="hive-load"/>

 

 

 

     <action name="hive-load">

 

         <hive2 xmlns="uri:oozie:hive2-action:0.1">

 

             <job-tracker>${jobTracker}</job-tracker>

 

             <name-node>${nameNode}</name-node>

 

             <job-xml>${nameNode}/oozie/hive-site.xml</job-xml>

 

             <jdbc-url>${hiveServer}</jdbc-url>

 

             <script>${nameNode}/oozie /load-script.hql</script>

 

             <param>...</param>

 

         </hive2>

 

 

 

         <ok to="end"/>

 

         <error to="fail"/>

 

     </action>

 

 

 

     ...

 

 

 

         <ok to="end"/>

 

         <error to="fail"/>

 

     </action>

 

 

 

     <kill name="fail">

 

         <message>Hive failed, error

message[${wf:errorMessage(wf:lastErrorNode())}]</message>

 

     </kill>

 

     <end name="end"/>

 

</workflow-app>

 

 

 

As far as I know the Hive2Main class is connecting to Beeline to run the

Hive script. When connecting to Beeline via the command line I either pass

the –n <username> argument to it (which isn’t possible in the Hive2 action

because of the filtering of this argument) or I get prompted for my

username and password when running !connect <jdbc-url> inside beeline. When

using the anonymous user I don’t have the permissions to access the tables.

 

 

 

How can I pass the username and password to the Hive2 action to Beeline in

the workflow required for connecting to the tables? Thanks for your help!

 

 

 

Jan

 

 

 

 

-- 

Peter Cseh

Software Engineer

<http://www.cloudera.com>

 


Re: Passing username and password to Hive2 action

Posted by Peter Cseh <ge...@cloudera.com>.
Hi,

The Hive2 action will use the name of the user who runs the workflow.
The password can be defined using the <password> tag.

There is a broader description of this at
https://oozie.apache.org/docs/4.2.0/DG_Hive2ActionExtension.html

BRs
gp

On Thu, Jun 2, 2016 at 11:49 PM, Jan Hentschel <
jan.hentschel@ultratendency.com> wrote:

> Hi,
>
>
>
> I have a cluster running HDP 2.3.4 with Oozie 4.2.0 installed on it. The
> cluster doesn’t use Kerberos. I’m trying to run a Hive2 action similar to
> the following
>
>
>
> <workflow-app xmlns="uri:oozie:workflow:0.4" name="hive-wf">
>
>     <parameters>...</parameters>
>
>
>
>     <start to="hive-load"/>
>
>
>
>     <action name="hive-load">
>
>         <hive2 xmlns="uri:oozie:hive2-action:0.1">
>
>             <job-tracker>${jobTracker}</job-tracker>
>
>             <name-node>${nameNode}</name-node>
>
>             <job-xml>${nameNode}/oozie/hive-site.xml</job-xml>
>
>             <jdbc-url>${hiveServer}</jdbc-url>
>
>             <script>${nameNode}/oozie /load-script.hql</script>
>
>             <param>...</param>
>
>         </hive2>
>
>
>
>         <ok to="end"/>
>
>         <error to="fail"/>
>
>     </action>
>
>
>
>     ...
>
>
>
>         <ok to="end"/>
>
>         <error to="fail"/>
>
>     </action>
>
>
>
>     <kill name="fail">
>
>         <message>Hive failed, error
> message[${wf:errorMessage(wf:lastErrorNode())}]</message>
>
>     </kill>
>
>     <end name="end"/>
>
> </workflow-app>
>
>
>
> As far as I know the Hive2Main class is connecting to Beeline to run the
> Hive script. When connecting to Beeline via the command line I either pass
> the –n <username> argument to it (which isn’t possible in the Hive2 action
> because of the filtering of this argument) or I get prompted for my
> username and password when running !connect <jdbc-url> inside beeline. When
> using the anonymous user I don’t have the permissions to access the tables.
>
>
>
> How can I pass the username and password to the Hive2 action to Beeline in
> the workflow required for connecting to the tables? Thanks for your help!
>
>
>
> Jan
>
>


-- 
Peter Cseh
Software Engineer
<http://www.cloudera.com>