1. DDL
CREATE TABLE vc.webpage (
host VARCHAR NOT NULL,
url VARCHAR NOT NULL,
url_type TINYINT,
c.html VARCHAR,
content VARCHAR,
title VARCHAR,
ext_title VARCHAR,
author VARCHAR,
pub_time DATE,
crawl_time DATE,
ext_time DATE
CONSTRAINT pk PRIMARY KEY(host, url)
)
VERSION=1,
c.VERSION=1,
SALT_BUCKETS=8
;
2. Phoenix 2.2.2
3. HBase 0.94.11, r1513697
4. test case, I can't find because I haven't log the value of url. I
think it's a concurrent problem because there are many threads read
and write this table(each thread has its own PhoenixConnection)
On Tue, Feb 11, 2014 at 12:44 AM, James Taylor <[email protected]> wrote:
> Please include your DDL statement and Phoenix and HBase client and server
> version. Even better, if you can put together at end-to-end test case,
> that's the best way to get to the bottom of the issue quickly.
> Thanks!
> James
>
> Thanks,
>
>
> On Monday, February 10, 2014, Li Li <[email protected]> wrote:
>>
>> what's wrong with it?
>> exception stack:
>> com.salesforce.phoenix.exception.PhoenixIOException: end index (1)
>> must not be less than start index (7)
>> at
>> com.salesforce.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:107)
>> at
>> com.salesforce.phoenix.iterate.ParallelIterators.getIterators(ParallelIterators.java:217)
>> at
>> com.salesforce.phoenix.iterate.MergeSortResultIterator.getIterators(MergeSortResultIterator.java:58)
>> at
>> com.salesforce.phoenix.iterate.MergeSortResultIterator.minIterator(MergeSortResultIterator.java:73)
>> at
>> com.salesforce.phoenix.iterate.MergeSortResultIterator.next(MergeSortResultIterator.java:100)
>> at
>> com.salesforce.phoenix.jdbc.PhoenixResultSet.next(PhoenixResultSet.java:741)
>>
>> my code:
>> public static String getHtml(PhoenixConnection conn,String url) throws
>> SQLException, MalformedURLException{
>> PreparedStatement pstmt=null;
>> ResultSet rs=null;
>> try{
>> String host=getReversedHostFromUrl(url);
>> pstmt=conn.prepareStatement("SELECT html FROM vc.webpage where host=?
>> and url=?");
>> pstmt.setString(1, host);
>> pstmt.setString(2, url);
>> rs=pstmt.executeQuery();
>> if(rs.next()) return rs.getString(1);
>> else return null;
>> }finally{
>> DbTools.closeAll(null, pstmt, rs);
>> }
>> }