|
|
-
Rest Client remote connection
Erman Pattuk 2012-10-14, 20:27
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
Andrew Purtell 2012-10-14, 20:43
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
Erman Pattuk 2012-10-14, 21:15
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
Andrew Purtell 2012-10-14, 21:28
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
Erman Pattuk 2012-10-14, 21:31
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 >>>> >>>> >>
|
|