You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@drill.apache.org by John Omernik <jo...@omernik.com> on 2016/05/14 16:15:00 UTC

MapR ODBC Issue

All -

I am using the MapR ODBC driver. I can get it to connect in direct mode,
however, I can't get it to connect in Zookeeper mode.  I think I know why.

To start off, I am using a different zk.root in my drill-override. This
allows me to have truly unique drill clusters on the same physical
clusters. This works well for most things, however, what I have found, is I
believe the ODBC driver assumes a hard coded zk.root. (drill).

For example, my cluster name is "drillprod" and my zk.root is "drillprod"
So, to connect via JDBC I use URL=
"jdbc:drill:zk:hadoopmapr4:5181,hadoopmapr5:5181,hadoopmapr6:5181/drillprod"

This works

However, I set the ZKClusterID  to be drillprod in ODBC and I get

Failure occurred while trying to connect to zk=
hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
hadoopmapr6.brewingintel.com:5181/drill/drillprod


If set the ZKQuorum to be "hadoopmapr4.brewingintel.com:5181,
hadoopmapr5.brewingintel.com:5181,
hadoopmapr6.brewingintel.com:5181/drillprod"


Then I get this error:


Failure occurred while trying to connect to zk=
hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
hadoopmapr6.brewingintel.com:5181/drillprod/drill/drillprod


The Znode: /drill/drillprod doesn't exist, neither does
/drillprod/drill/drillprod. The correct one, for this use case is
"/drillprod/drillprod"


But I can't seem to get the ODBC driver to check there, as it appears to
hard code a /drill rather than allow me to specify the zk.root as the
drill-override.conf does.


Please advise


John

Re: MapR ODBC Issue

Posted by John Omernik <jo...@omernik.com>.
Perfect thanks! By putting the zk root in the ZKClusterID (instead the ZK
Quorum ) it worked!

ZKQuorum                   = node1:5181,node2:5181,node3:5181
ZKClusterID                = drillprod

[unixODBC][MapR][Drill] (10) Failure occurred while trying to connect to
zk=node1:5181,node2:5181,node3:5181/drill/drillprod (10)
(SQLDriverConnect)')



ZKQuorum                   = node1:5181,node2:5181,node3:5181/drillprod
ZKClusterID                = drillprod

[unixODBC][MapR][Drill] (10) Failure occurred while trying to connect to
zk=node1:5181,node2:5181,node3:5181/drillprod/drill/drillprod (10)
(SQLDriverConnect)')



ZKQuorum                   = node1:5181,node2:5181,node3:5181
ZKClusterID                = /drillprod/drillprod

Works!

On Mon, May 16, 2016 at 10:59 AM, Andries Engelbrecht <
aengelbrecht@maprtech.com> wrote:

> For windows the GUI doesn't allow the extended ZK connection string.
>
> So the best option is (as Krystal mentioned)
>
> ZKQuorum            = <hostname>:5181 or 2181
> ZKClusterID         =/<zk drill root dir> /<drill cluster-id>
>
> ex.
>
> ZKQuorum            = drill-dev:5181
> ZKClusterID         = /drill2/awsdrill-drillbits
>
>
> Works on both Windows and OSX.
>
> --Andries
>
> > On May 16, 2016, at 8:54 AM, Andries Engelbrecht <
> aengelbrecht@maprtech.com> wrote:
> >
> > Or as Krystal mentioned just specify the whole cluster ID from the ZK
> root
> >
> > ZKQuorum            = <hostname>:5181 or 2181
> > ZKClusterID         =/<zk drill root dir> /<drill cluster-id>
> >
> > ex.
> >
> > ZKQuorum            = drill-dev:5181
> > ZKClusterID         = /drill2/awsdrill-drillbits
> >
> >
> > Both works when I tested in OSX.
> >
> > --Andries
> >
> >> On May 16, 2016, at 8:50 AM, Andries Engelbrecht <
> aengelbrecht@maprtech.com> wrote:
> >>
> >> Hi John,
> >>
> >> It seems the ODBC driver is adding in the default /drill path the ZK
> connection string.
> >>
> >> I looked at it and here is a workaround.
> >>
> >> For OSX/Linux in the odbc.ini file the following works
> >>
> >> ZKQuorum            = <hostname>:5181 or 2181/<zk drill root dir>
> >> ZKClusterID         = /<drill cluster-id>
> >>
> >> ex.
> >>
> >> ZKQuorum            = drill-dev:5181/drill2
> >> ZKClusterID         = /awsdrill-drillbits
> >>
> >> This allows you to add the drill root at the end of the ZK quorum and
> then step back up one level on the ClusterID.
> >>
> >> See if this works for you.
> >>
> >> I will check on Windows in a sec.
> >>
> >>
> >> --Andries
> >>
> >>
> >>
> >>
> >>> On May 14, 2016, at 9:15 AM, John Omernik <jo...@omernik.com> wrote:
> >>>
> >>> All -
> >>>
> >>> I am using the MapR ODBC driver. I can get it to connect in direct
> mode,
> >>> however, I can't get it to connect in Zookeeper mode.  I think I know
> why.
> >>>
> >>> To start off, I am using a different zk.root in my drill-override. This
> >>> allows me to have truly unique drill clusters on the same physical
> >>> clusters. This works well for most things, however, what I have found,
> is I
> >>> believe the ODBC driver assumes a hard coded zk.root. (drill).
> >>>
> >>> For example, my cluster name is "drillprod" and my zk.root is
> "drillprod"
> >>> So, to connect via JDBC I use URL=
> >>>
> "jdbc:drill:zk:hadoopmapr4:5181,hadoopmapr5:5181,hadoopmapr6:5181/drillprod"
> >>>
> >>> This works
> >>>
> >>> However, I set the ZKClusterID  to be drillprod in ODBC and I get
> >>>
> >>> Failure occurred while trying to connect to zk=
> >>> hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
> >>> hadoopmapr6.brewingintel.com:5181/drill/drillprod
> >>>
> >>>
> >>> If set the ZKQuorum to be "hadoopmapr4.brewingintel.com:5181,
> >>> hadoopmapr5.brewingintel.com:5181,
> >>> hadoopmapr6.brewingintel.com:5181/drillprod"
> >>>
> >>>
> >>> Then I get this error:
> >>>
> >>>
> >>> Failure occurred while trying to connect to zk=
> >>> hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
> >>> hadoopmapr6.brewingintel.com:5181/drillprod/drill/drillprod
> >>>
> >>>
> >>> The Znode: /drill/drillprod doesn't exist, neither does
> >>> /drillprod/drill/drillprod. The correct one, for this use case is
> >>> "/drillprod/drillprod"
> >>>
> >>>
> >>> But I can't seem to get the ODBC driver to check there, as it appears
> to
> >>> hard code a /drill rather than allow me to specify the zk.root as the
> >>> drill-override.conf does.
> >>>
> >>>
> >>> Please advise
> >>>
> >>>
> >>> John
> >>
> >
>
>

Re: MapR ODBC Issue

Posted by Andries Engelbrecht <ae...@maprtech.com>.
For windows the GUI doesn't allow the extended ZK connection string.

So the best option is (as Krystal mentioned)

ZKQuorum            = <hostname>:5181 or 2181
ZKClusterID         =/<zk drill root dir> /<drill cluster-id>

ex.

ZKQuorum            = drill-dev:5181
ZKClusterID         = /drill2/awsdrill-drillbits


Works on both Windows and OSX.

--Andries

> On May 16, 2016, at 8:54 AM, Andries Engelbrecht <ae...@maprtech.com> wrote:
> 
> Or as Krystal mentioned just specify the whole cluster ID from the ZK root
> 
> ZKQuorum            = <hostname>:5181 or 2181
> ZKClusterID         =/<zk drill root dir> /<drill cluster-id>
> 
> ex.
> 
> ZKQuorum            = drill-dev:5181
> ZKClusterID         = /drill2/awsdrill-drillbits
> 
> 
> Both works when I tested in OSX.
> 
> --Andries
> 
>> On May 16, 2016, at 8:50 AM, Andries Engelbrecht <ae...@maprtech.com> wrote:
>> 
>> Hi John,
>> 
>> It seems the ODBC driver is adding in the default /drill path the ZK connection string.
>> 
>> I looked at it and here is a workaround.
>> 
>> For OSX/Linux in the odbc.ini file the following works
>> 
>> ZKQuorum            = <hostname>:5181 or 2181/<zk drill root dir>
>> ZKClusterID         = /<drill cluster-id>
>> 
>> ex.
>> 
>> ZKQuorum            = drill-dev:5181/drill2
>> ZKClusterID         = /awsdrill-drillbits
>> 
>> This allows you to add the drill root at the end of the ZK quorum and then step back up one level on the ClusterID.
>> 
>> See if this works for you.
>> 
>> I will check on Windows in a sec.
>> 
>> 
>> --Andries
>> 
>> 
>> 
>> 
>>> On May 14, 2016, at 9:15 AM, John Omernik <jo...@omernik.com> wrote:
>>> 
>>> All -
>>> 
>>> I am using the MapR ODBC driver. I can get it to connect in direct mode,
>>> however, I can't get it to connect in Zookeeper mode.  I think I know why.
>>> 
>>> To start off, I am using a different zk.root in my drill-override. This
>>> allows me to have truly unique drill clusters on the same physical
>>> clusters. This works well for most things, however, what I have found, is I
>>> believe the ODBC driver assumes a hard coded zk.root. (drill).
>>> 
>>> For example, my cluster name is "drillprod" and my zk.root is "drillprod"
>>> So, to connect via JDBC I use URL=
>>> "jdbc:drill:zk:hadoopmapr4:5181,hadoopmapr5:5181,hadoopmapr6:5181/drillprod"
>>> 
>>> This works
>>> 
>>> However, I set the ZKClusterID  to be drillprod in ODBC and I get
>>> 
>>> Failure occurred while trying to connect to zk=
>>> hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
>>> hadoopmapr6.brewingintel.com:5181/drill/drillprod
>>> 
>>> 
>>> If set the ZKQuorum to be "hadoopmapr4.brewingintel.com:5181,
>>> hadoopmapr5.brewingintel.com:5181,
>>> hadoopmapr6.brewingintel.com:5181/drillprod"
>>> 
>>> 
>>> Then I get this error:
>>> 
>>> 
>>> Failure occurred while trying to connect to zk=
>>> hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
>>> hadoopmapr6.brewingintel.com:5181/drillprod/drill/drillprod
>>> 
>>> 
>>> The Znode: /drill/drillprod doesn't exist, neither does
>>> /drillprod/drill/drillprod. The correct one, for this use case is
>>> "/drillprod/drillprod"
>>> 
>>> 
>>> But I can't seem to get the ODBC driver to check there, as it appears to
>>> hard code a /drill rather than allow me to specify the zk.root as the
>>> drill-override.conf does.
>>> 
>>> 
>>> Please advise
>>> 
>>> 
>>> John
>> 
> 


Re: MapR ODBC Issue

Posted by Andries Engelbrecht <ae...@maprtech.com>.
Or as Krystal mentioned just specify the whole cluster ID from the ZK root

ZKQuorum            = <hostname>:5181 or 2181
ZKClusterID         =/<zk drill root dir> /<drill cluster-id>

ex.

ZKQuorum            = drill-dev:5181
ZKClusterID         = /drill2/awsdrill-drillbits


Both works when I tested in OSX.

--Andries

> On May 16, 2016, at 8:50 AM, Andries Engelbrecht <ae...@maprtech.com> wrote:
> 
> Hi John,
> 
> It seems the ODBC driver is adding in the default /drill path the ZK connection string.
> 
> I looked at it and here is a workaround.
> 
> For OSX/Linux in the odbc.ini file the following works
> 
> ZKQuorum            = <hostname>:5181 or 2181/<zk drill root dir>
> ZKClusterID         = /<drill cluster-id>
> 
> ex.
> 
> ZKQuorum            = drill-dev:5181/drill2
> ZKClusterID         = /awsdrill-drillbits
> 
> This allows you to add the drill root at the end of the ZK quorum and then step back up one level on the ClusterID.
> 
> See if this works for you.
> 
> I will check on Windows in a sec.
> 
> 
> --Andries
> 
> 
> 
> 
>> On May 14, 2016, at 9:15 AM, John Omernik <jo...@omernik.com> wrote:
>> 
>> All -
>> 
>> I am using the MapR ODBC driver. I can get it to connect in direct mode,
>> however, I can't get it to connect in Zookeeper mode.  I think I know why.
>> 
>> To start off, I am using a different zk.root in my drill-override. This
>> allows me to have truly unique drill clusters on the same physical
>> clusters. This works well for most things, however, what I have found, is I
>> believe the ODBC driver assumes a hard coded zk.root. (drill).
>> 
>> For example, my cluster name is "drillprod" and my zk.root is "drillprod"
>> So, to connect via JDBC I use URL=
>> "jdbc:drill:zk:hadoopmapr4:5181,hadoopmapr5:5181,hadoopmapr6:5181/drillprod"
>> 
>> This works
>> 
>> However, I set the ZKClusterID  to be drillprod in ODBC and I get
>> 
>> Failure occurred while trying to connect to zk=
>> hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
>> hadoopmapr6.brewingintel.com:5181/drill/drillprod
>> 
>> 
>> If set the ZKQuorum to be "hadoopmapr4.brewingintel.com:5181,
>> hadoopmapr5.brewingintel.com:5181,
>> hadoopmapr6.brewingintel.com:5181/drillprod"
>> 
>> 
>> Then I get this error:
>> 
>> 
>> Failure occurred while trying to connect to zk=
>> hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
>> hadoopmapr6.brewingintel.com:5181/drillprod/drill/drillprod
>> 
>> 
>> The Znode: /drill/drillprod doesn't exist, neither does
>> /drillprod/drill/drillprod. The correct one, for this use case is
>> "/drillprod/drillprod"
>> 
>> 
>> But I can't seem to get the ODBC driver to check there, as it appears to
>> hard code a /drill rather than allow me to specify the zk.root as the
>> drill-override.conf does.
>> 
>> 
>> Please advise
>> 
>> 
>> John
> 


Re: MapR ODBC Issue

Posted by Andries Engelbrecht <ae...@maprtech.com>.
Hi John,

It seems the ODBC driver is adding in the default /drill path the ZK connection string.

I looked at it and here is a workaround.

For OSX/Linux in the odbc.ini file the following works

ZKQuorum            = <hostname>:5181 or 2181/<zk drill root dir>
ZKClusterID         = /<drill cluster-id>

ex.

ZKQuorum            = drill-dev:5181/drill2
ZKClusterID         = /awsdrill-drillbits

This allows you to add the drill root at the end of the ZK quorum and then step back up one level on the ClusterID.

See if this works for you.

I will check on Windows in a sec.


--Andries




> On May 14, 2016, at 9:15 AM, John Omernik <jo...@omernik.com> wrote:
> 
> All -
> 
> I am using the MapR ODBC driver. I can get it to connect in direct mode,
> however, I can't get it to connect in Zookeeper mode.  I think I know why.
> 
> To start off, I am using a different zk.root in my drill-override. This
> allows me to have truly unique drill clusters on the same physical
> clusters. This works well for most things, however, what I have found, is I
> believe the ODBC driver assumes a hard coded zk.root. (drill).
> 
> For example, my cluster name is "drillprod" and my zk.root is "drillprod"
> So, to connect via JDBC I use URL=
> "jdbc:drill:zk:hadoopmapr4:5181,hadoopmapr5:5181,hadoopmapr6:5181/drillprod"
> 
> This works
> 
> However, I set the ZKClusterID  to be drillprod in ODBC and I get
> 
> Failure occurred while trying to connect to zk=
> hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
> hadoopmapr6.brewingintel.com:5181/drill/drillprod
> 
> 
> If set the ZKQuorum to be "hadoopmapr4.brewingintel.com:5181,
> hadoopmapr5.brewingintel.com:5181,
> hadoopmapr6.brewingintel.com:5181/drillprod"
> 
> 
> Then I get this error:
> 
> 
> Failure occurred while trying to connect to zk=
> hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
> hadoopmapr6.brewingintel.com:5181/drillprod/drill/drillprod
> 
> 
> The Znode: /drill/drillprod doesn't exist, neither does
> /drillprod/drill/drillprod. The correct one, for this use case is
> "/drillprod/drillprod"
> 
> 
> But I can't seem to get the ODBC driver to check there, as it appears to
> hard code a /drill rather than allow me to specify the zk.root as the
> drill-override.conf does.
> 
> 
> Please advise
> 
> 
> John


Re: MapR ODBC Issue

Posted by Krystal Nguyen <kn...@maprtech.com>.
Hi John,

For the ZKClusterID, can you try setting it like this: /drillprod/drillprod

Thanks,
Krystal

On Mon, May 16, 2016 at 8:14 AM, Parth Chandra <pc...@maprtech.com>
wrote:

> Hi John
>
>   Can you try passing the ZKClusterID parameter to the driver. See example
> here:
>
>     https://drill.apache.org/docs/using-a-connection-string/
>
>    DRIVER=MapR Drill ODBC Driver;AdvancedProperties=
> {HandshakeTimeout=0;QueryTimeout=0;
> TimestampTZDisplayTimezone=utc;ExcludedSchemas=sys,
> INFORMATION_SCHEMA;};Catalog=DRILL;Schema=;
> ConnectionType=ZooKeeper;ZKQuorum=192.168.39.43:5181;
> ZKClusterID=drillbits1
> Thanks
>
> Parth
>
> On Sat, May 14, 2016 at 9:15 AM, John Omernik <jo...@omernik.com> wrote:
>
> > All -
> >
> > I am using the MapR ODBC driver. I can get it to connect in direct mode,
> > however, I can't get it to connect in Zookeeper mode.  I think I know
> why.
> >
> > To start off, I am using a different zk.root in my drill-override. This
> > allows me to have truly unique drill clusters on the same physical
> > clusters. This works well for most things, however, what I have found,
> is I
> > believe the ODBC driver assumes a hard coded zk.root. (drill).
> >
> > For example, my cluster name is "drillprod" and my zk.root is "drillprod"
> > So, to connect via JDBC I use URL=
> >
> >
> "jdbc:drill:zk:hadoopmapr4:5181,hadoopmapr5:5181,hadoopmapr6:5181/drillprod"
> >
> > This works
> >
> > However, I set the ZKClusterID  to be drillprod in ODBC and I get
> >
> > Failure occurred while trying to connect to zk=
> > hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
> > hadoopmapr6.brewingintel.com:5181/drill/drillprod
> >
> >
> > If set the ZKQuorum to be "hadoopmapr4.brewingintel.com:5181,
> > hadoopmapr5.brewingintel.com:5181,
> > hadoopmapr6.brewingintel.com:5181/drillprod"
> >
> >
> > Then I get this error:
> >
> >
> > Failure occurred while trying to connect to zk=
> > hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
> > hadoopmapr6.brewingintel.com:5181/drillprod/drill/drillprod
> >
> >
> > The Znode: /drill/drillprod doesn't exist, neither does
> > /drillprod/drill/drillprod. The correct one, for this use case is
> > "/drillprod/drillprod"
> >
> >
> > But I can't seem to get the ODBC driver to check there, as it appears to
> > hard code a /drill rather than allow me to specify the zk.root as the
> > drill-override.conf does.
> >
> >
> > Please advise
> >
> >
> > John
> >
>

Re: MapR ODBC Issue

Posted by Parth Chandra <pc...@maprtech.com>.
Hi John

  Can you try passing the ZKClusterID parameter to the driver. See example
here:

    https://drill.apache.org/docs/using-a-connection-string/

   DRIVER=MapR Drill ODBC Driver;AdvancedProperties=
{HandshakeTimeout=0;QueryTimeout=0;
TimestampTZDisplayTimezone=utc;ExcludedSchemas=sys,
INFORMATION_SCHEMA;};Catalog=DRILL;Schema=;
ConnectionType=ZooKeeper;ZKQuorum=192.168.39.43:5181; ZKClusterID=drillbits1
Thanks

Parth

On Sat, May 14, 2016 at 9:15 AM, John Omernik <jo...@omernik.com> wrote:

> All -
>
> I am using the MapR ODBC driver. I can get it to connect in direct mode,
> however, I can't get it to connect in Zookeeper mode.  I think I know why.
>
> To start off, I am using a different zk.root in my drill-override. This
> allows me to have truly unique drill clusters on the same physical
> clusters. This works well for most things, however, what I have found, is I
> believe the ODBC driver assumes a hard coded zk.root. (drill).
>
> For example, my cluster name is "drillprod" and my zk.root is "drillprod"
> So, to connect via JDBC I use URL=
>
> "jdbc:drill:zk:hadoopmapr4:5181,hadoopmapr5:5181,hadoopmapr6:5181/drillprod"
>
> This works
>
> However, I set the ZKClusterID  to be drillprod in ODBC and I get
>
> Failure occurred while trying to connect to zk=
> hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
> hadoopmapr6.brewingintel.com:5181/drill/drillprod
>
>
> If set the ZKQuorum to be "hadoopmapr4.brewingintel.com:5181,
> hadoopmapr5.brewingintel.com:5181,
> hadoopmapr6.brewingintel.com:5181/drillprod"
>
>
> Then I get this error:
>
>
> Failure occurred while trying to connect to zk=
> hadoopmapr4.brewingintel.com:5181,hadoopmapr5.brewingintel.com:5181,
> hadoopmapr6.brewingintel.com:5181/drillprod/drill/drillprod
>
>
> The Znode: /drill/drillprod doesn't exist, neither does
> /drillprod/drill/drillprod. The correct one, for this use case is
> "/drillprod/drillprod"
>
>
> But I can't seem to get the ODBC driver to check there, as it appears to
> hard code a /drill rather than allow me to specify the zk.root as the
> drill-override.conf does.
>
>
> Please advise
>
>
> John
>