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
>