You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Erman Pattuk <er...@gmail.com> on 2012/10/14 22:27:52 UTC

Rest Client remote connection

Hi,

I have yet another problem with HBase rest client/server thing. Through 
Java Rest Client, if I call scan function, an IOException occurs, saying 
"scan request failed with 400".

Here is the situation:
I am running my application on my laptop, which has hbase 0.94.1. On the 
other hand, cluster that I am connecting to has HBase 0.90.1. Before 
starting Rest server on cluster, I had to copy jax, jackson (I don't 
remember the names exactly :)) jars to master and slaves.
I can connect to cluster's Rest server from my laptop, I'm sure about 
that. But, when I send a query (Put, Scan or any other), I get error 
code 400.

Do I have to update HBase on my cluster as well? Or can I solve the 
issue without doing so?

Thanks in advance.
Erman

Re: Rest Client remote connection

Posted by Erman Pattuk <er...@gmail.com>.
Thank you so much for your answers Andrew.

Erman


On 10/14/2012 4:28 PM, Andrew Purtell wrote:
> What REST does wrt. filters is pass through a filter specification from
> client to server. The filter API has been changing for each HBase major
> version so it hasn't made sense (yet) to make this a first class part of
> the REST representations, thus version independent. (Otherwise retired
> filter types would need be emulated.) Certainly an older server will not
> understand filters constructed by a newer client. In short, if you want to
> use filters for scans submitted through the REST interface the client and
> server versions should be the same.
>
> On Sunday, October 14, 2012, Erman Pattuk wrote:
>
>> With a more detailed investigation, I found out that the problem was about
>> setting a filter for the scan instance.
>>
>> In my application, I create FilterList and put a KeyOnlyFilter in it. Then
>> I use Scan::setFilter(Filter) method. If I remove this statement, then
>> there is no problem.
>>
>> Does Rest API support filters in Get and Scan? Maybe that is the problem.
>>
>> By the way, in the server logs, there was not a trace of a failed request
>> of some kind.
>>
>> On 10/14/2012 3:43 PM, Andrew Purtell wrote:
>>
>>> First, if you don't need mismatched client and server versions of HBase
>>> you'll do yourself a favor by avoiding that - just as a general
>>> suggestion.
>>>
>>> Next, a 400 response means your request was not properly formatted. We
>>> will
>>> need more information to understand why. What was the request as sent by
>>> the client? What is logged on the server side?
>>>
>>> On Sunday, October 14, 2012, Erman Pattuk wrote:
>>>
>>>   Hi,
>>>> I have yet another problem with HBase rest client/server thing. Through
>>>> Java Rest Client, if I call scan function, an IOException occurs, saying
>>>> "scan request failed with 400".
>>>>
>>>> Here is the situation:
>>>> I am running my application on my laptop, which has hbase 0.94.1. On the
>>>> other hand, cluster that I am connecting to has HBase 0.90.1. Before
>>>> starting Rest server on cluster, I had to copy jax, jackson (I don't
>>>> remember the names exactly :)) jars to master and slaves.
>>>> I can connect to cluster's Rest server from my laptop, I'm sure about
>>>> that. But, when I send a query (Put, Scan or any other), I get error code
>>>> 400.
>>>>
>>>> Do I have to update HBase on my cluster as well? Or can I solve the issue
>>>> without doing so?
>>>>
>>>> Thanks in advance.
>>>> Erman
>>>>
>>>>
>>



Re: Rest Client remote connection

Posted by Andrew Purtell <ap...@apache.org>.
What REST does wrt. filters is pass through a filter specification from
client to server. The filter API has been changing for each HBase major
version so it hasn't made sense (yet) to make this a first class part of
the REST representations, thus version independent. (Otherwise retired
filter types would need be emulated.) Certainly an older server will not
understand filters constructed by a newer client. In short, if you want to
use filters for scans submitted through the REST interface the client and
server versions should be the same.

On Sunday, October 14, 2012, Erman Pattuk wrote:

> With a more detailed investigation, I found out that the problem was about
> setting a filter for the scan instance.
>
> In my application, I create FilterList and put a KeyOnlyFilter in it. Then
> I use Scan::setFilter(Filter) method. If I remove this statement, then
> there is no problem.
>
> Does Rest API support filters in Get and Scan? Maybe that is the problem.
>
> By the way, in the server logs, there was not a trace of a failed request
> of some kind.
>
> On 10/14/2012 3:43 PM, Andrew Purtell wrote:
>
>> First, if you don't need mismatched client and server versions of HBase
>> you'll do yourself a favor by avoiding that - just as a general
>> suggestion.
>>
>> Next, a 400 response means your request was not properly formatted. We
>> will
>> need more information to understand why. What was the request as sent by
>> the client? What is logged on the server side?
>>
>> On Sunday, October 14, 2012, Erman Pattuk wrote:
>>
>>  Hi,
>>>
>>> I have yet another problem with HBase rest client/server thing. Through
>>> Java Rest Client, if I call scan function, an IOException occurs, saying
>>> "scan request failed with 400".
>>>
>>> Here is the situation:
>>> I am running my application on my laptop, which has hbase 0.94.1. On the
>>> other hand, cluster that I am connecting to has HBase 0.90.1. Before
>>> starting Rest server on cluster, I had to copy jax, jackson (I don't
>>> remember the names exactly :)) jars to master and slaves.
>>> I can connect to cluster's Rest server from my laptop, I'm sure about
>>> that. But, when I send a query (Put, Scan or any other), I get error code
>>> 400.
>>>
>>> Do I have to update HBase on my cluster as well? Or can I solve the issue
>>> without doing so?
>>>
>>> Thanks in advance.
>>> Erman
>>>
>>>
>>
>
>

-- 
Best regards,

   - Andy

Problems worthy of attack prove their worth by hitting back. - Piet Hein
(via Tom White)

Re: Rest Client remote connection

Posted by Erman Pattuk <er...@gmail.com>.
With a more detailed investigation, I found out that the problem was 
about setting a filter for the scan instance.

In my application, I create FilterList and put a KeyOnlyFilter in it. 
Then I use Scan::setFilter(Filter) method. If I remove this statement, 
then there is no problem.

Does Rest API support filters in Get and Scan? Maybe that is the problem.

By the way, in the server logs, there was not a trace of a failed 
request of some kind.

On 10/14/2012 3:43 PM, Andrew Purtell wrote:
> First, if you don't need mismatched client and server versions of HBase
> you'll do yourself a favor by avoiding that - just as a general suggestion.
>
> Next, a 400 response means your request was not properly formatted. We will
> need more information to understand why. What was the request as sent by
> the client? What is logged on the server side?
>
> On Sunday, October 14, 2012, Erman Pattuk wrote:
>
>> Hi,
>>
>> I have yet another problem with HBase rest client/server thing. Through
>> Java Rest Client, if I call scan function, an IOException occurs, saying
>> "scan request failed with 400".
>>
>> Here is the situation:
>> I am running my application on my laptop, which has hbase 0.94.1. On the
>> other hand, cluster that I am connecting to has HBase 0.90.1. Before
>> starting Rest server on cluster, I had to copy jax, jackson (I don't
>> remember the names exactly :)) jars to master and slaves.
>> I can connect to cluster's Rest server from my laptop, I'm sure about
>> that. But, when I send a query (Put, Scan or any other), I get error code
>> 400.
>>
>> Do I have to update HBase on my cluster as well? Or can I solve the issue
>> without doing so?
>>
>> Thanks in advance.
>> Erman
>>
>



Re: Rest Client remote connection

Posted by Andrew Purtell <ap...@apache.org>.
First, if you don't need mismatched client and server versions of HBase
you'll do yourself a favor by avoiding that - just as a general suggestion.

Next, a 400 response means your request was not properly formatted. We will
need more information to understand why. What was the request as sent by
the client? What is logged on the server side?

On Sunday, October 14, 2012, Erman Pattuk wrote:

> Hi,
>
> I have yet another problem with HBase rest client/server thing. Through
> Java Rest Client, if I call scan function, an IOException occurs, saying
> "scan request failed with 400".
>
> Here is the situation:
> I am running my application on my laptop, which has hbase 0.94.1. On the
> other hand, cluster that I am connecting to has HBase 0.90.1. Before
> starting Rest server on cluster, I had to copy jax, jackson (I don't
> remember the names exactly :)) jars to master and slaves.
> I can connect to cluster's Rest server from my laptop, I'm sure about
> that. But, when I send a query (Put, Scan or any other), I get error code
> 400.
>
> Do I have to update HBase on my cluster as well? Or can I solve the issue
> without doing so?
>
> Thanks in advance.
> Erman
>


-- 
Best regards,

   - Andy

Problems worthy of attack prove their worth by hitting back. - Piet Hein
(via Tom White)