You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by Marcelo Valle <mv...@gmail.com> on 2017/12/21 16:11:56 UTC

jdbc driver - fat vs thin and hbase-site.xml

Hi,

I am new to Apache Phoenix and I am trying to use it in a new project. I am
sorry if I am asking something basic here, but I was struggling to find
this info on the web.

I successfully created a simple application using jdbc fat driver, starting
up phoenix using HBaseTestingUtility without any problems, I was able to
connect, test, and make sure my code is working as expected.

Now it's time to connect to the real cluster we have in dev environment. I
was surprised when I found out that just JDBC connection url and kerberos
auth are not enough to connect to the real cluster, I have to add some
hbase xml files with the cluster information to the classpath, so the
driver can know about the cluster nodes.

Question - is there a way to avoid that? If I use the thin driver, will I
still need these XML files? Suppose I add a new node to my phoenix cluster,
does it mean I will have to redeploy my application so the new node can be
considered?

Thanks,
-- 
Marcelo Valle
http://mvalle.com - @mvallebr

Re: jdbc driver - fat vs thin and hbase-site.xml

Posted by Josh Elser <el...@apache.org>.
Nope. It is a hard requirement presently.

Some simple things could be solved at the Phoenix level; however, much 
of HBase's RPC model (notably RPC authn/authz) relies on configuration 
from hbase-site.xml and core-site.xml. There is no simple workaround for 
this.

On 12/22/17 12:48 PM, Marcelo Valle wrote:
> Hi Josh,
> 
> Thanks for answering. Out of curiosity, is there any way of connecting 
> to phoenix without having to add files on class path? I was hoping it 
> would work if I inform the DNS of a single node of zoo keeper quorum, as 
> the rest of the nodes can be found from the node itself.
> 
> Thanks,
> Marcelo.
> 
> 
> On 21 December 2017 at 20:02, Josh Elser <elserj@apache.org 
> <ma...@apache.org>> wrote:
> 
>     Hi Marcelo,
> 
>     The requirement for hbase-site.xml and core-site.xml to be on the
>     classpath are a "wart", resulting from the close ties to HBase and
>     Hadoop -- much of the Kerberos authentication code is inherited from
>     Hadoop, and thus requires some of that configuration.
> 
>     I'd encourage you to look at the contents of the core-site.xml and
>     hbase-site.xml files. There is very likely nothing that you would
>     need to change in these files if you add a new node to your cluster.
> 
>     The thin-client talks to the Phoenix Query Server instead of talking
>     directly to HBase which does simplify the scenario. However, using
>     the thin driver implies that you're (always) doing more work to
>     answer a equivalent query as compared to the thick driver.
> 
> 
>     On 12/21/17 11:11 AM, Marcelo Valle wrote:
> 
>         Hi,
> 
>         I am new to Apache Phoenix and I am trying to use it in a new
>         project. I am sorry if I am asking something basic here, but I
>         was struggling to find this info on the web.
> 
>         I successfully created a simple application using jdbc fat
>         driver, starting up phoenix using HBaseTestingUtility without
>         any problems, I was able to connect, test, and make sure my code
>         is working as expected.
> 
>         Now it's time to connect to the real cluster we have in dev
>         environment. I was surprised when I found out that just JDBC
>         connection url and kerberos auth are not enough to connect to
>         the real cluster, I have to add some hbase xml files with the
>         cluster information to the classpath, so the driver can know
>         about the cluster nodes.
> 
>         Question - is there a way to avoid that? If I use the thin
>         driver, will I still need these XML files? Suppose I add a new
>         node to my phoenix cluster, does it mean I will have to redeploy
>         my application so the new node can be considered?
> 
>         Thanks,
>         -- 
>         Marcelo Valle
>         http://mvalle.com - @mvallebr
> 
> 
> 
> 
> -- 
> Marcelo Valle
> http://mvalle.com - @mvallebr

Re: jdbc driver - fat vs thin and hbase-site.xml

Posted by Marcelo Valle <mv...@gmail.com>.
Hi Josh,

Thanks for answering. Out of curiosity, is there any way of connecting to
phoenix without having to add files on class path? I was hoping it would
work if I inform the DNS of a single node of zoo keeper quorum, as the rest
of the nodes can be found from the node itself.

Thanks,
Marcelo.


On 21 December 2017 at 20:02, Josh Elser <el...@apache.org> wrote:

> Hi Marcelo,
>
> The requirement for hbase-site.xml and core-site.xml to be on the
> classpath are a "wart", resulting from the close ties to HBase and Hadoop
> -- much of the Kerberos authentication code is inherited from Hadoop, and
> thus requires some of that configuration.
>
> I'd encourage you to look at the contents of the core-site.xml and
> hbase-site.xml files. There is very likely nothing that you would need to
> change in these files if you add a new node to your cluster.
>
> The thin-client talks to the Phoenix Query Server instead of talking
> directly to HBase which does simplify the scenario. However, using the thin
> driver implies that you're (always) doing more work to answer a equivalent
> query as compared to the thick driver.
>
>
> On 12/21/17 11:11 AM, Marcelo Valle wrote:
>
>> Hi,
>>
>> I am new to Apache Phoenix and I am trying to use it in a new project. I
>> am sorry if I am asking something basic here, but I was struggling to find
>> this info on the web.
>>
>> I successfully created a simple application using jdbc fat driver,
>> starting up phoenix using HBaseTestingUtility without any problems, I was
>> able to connect, test, and make sure my code is working as expected.
>>
>> Now it's time to connect to the real cluster we have in dev environment.
>> I was surprised when I found out that just JDBC connection url and kerberos
>> auth are not enough to connect to the real cluster, I have to add some
>> hbase xml files with the cluster information to the classpath, so the
>> driver can know about the cluster nodes.
>>
>> Question - is there a way to avoid that? If I use the thin driver, will I
>> still need these XML files? Suppose I add a new node to my phoenix cluster,
>> does it mean I will have to redeploy my application so the new node can be
>> considered?
>>
>> Thanks,
>> --
>> Marcelo Valle
>> http://mvalle.com - @mvallebr
>>
>


-- 
Marcelo Valle
http://mvalle.com - @mvallebr

Re: jdbc driver - fat vs thin and hbase-site.xml

Posted by Josh Elser <el...@apache.org>.
Hi Marcelo,

The requirement for hbase-site.xml and core-site.xml to be on the 
classpath are a "wart", resulting from the close ties to HBase and 
Hadoop -- much of the Kerberos authentication code is inherited from 
Hadoop, and thus requires some of that configuration.

I'd encourage you to look at the contents of the core-site.xml and 
hbase-site.xml files. There is very likely nothing that you would need 
to change in these files if you add a new node to your cluster.

The thin-client talks to the Phoenix Query Server instead of talking 
directly to HBase which does simplify the scenario. However, using the 
thin driver implies that you're (always) doing more work to answer a 
equivalent query as compared to the thick driver.

On 12/21/17 11:11 AM, Marcelo Valle wrote:
> Hi,
> 
> I am new to Apache Phoenix and I am trying to use it in a new project. I 
> am sorry if I am asking something basic here, but I was struggling to 
> find this info on the web.
> 
> I successfully created a simple application using jdbc fat driver, 
> starting up phoenix using HBaseTestingUtility without any problems, I 
> was able to connect, test, and make sure my code is working as expected.
> 
> Now it's time to connect to the real cluster we have in dev environment. 
> I was surprised when I found out that just JDBC connection url and 
> kerberos auth are not enough to connect to the real cluster, I have to 
> add some hbase xml files with the cluster information to the classpath, 
> so the driver can know about the cluster nodes.
> 
> Question - is there a way to avoid that? If I use the thin driver, will 
> I still need these XML files? Suppose I add a new node to my phoenix 
> cluster, does it mean I will have to redeploy my application so the new 
> node can be considered?
> 
> Thanks,
> -- 
> Marcelo Valle
> http://mvalle.com - @mvallebr