Thanks Ted, looking at that bug and the HBase code it looks like this issue
is fixed in trunk (0.92). I'm still running 0.90 so I won't be able to
regress against 0.92 right away, but I'll try it when I can.



On Sat, May 21, 2011 at 6:28 AM, Ted Yu <[email protected]> wrote:

> Bill:
> TableOutputFormat instances are mutually exclusive due to this line in
> close():
>       HConnectionManager.deleteAllConnections(true);
>
> In trunk, after HBASE-3777, we have:
>     public void close(TaskAttemptContext context)
>     throws IOException {
>       table.close();
>     }
> Keric can remove the HConnectionManager.deleteAllConnections() call so that
> more than one STORE commands can be used at the same time.
>
> But I am not sure how HConnectionManager.deleteAllConnections() itself can
> be triggered by a PIG command.
>
> Cheers
>
>
> On Fri, May 20, 2011 at 11:07 PM, Bill Graham <[email protected]>wrote:
>
>> Digging into this bug a bit, I think I have a feel for what's happening,
>> but
>> I want to check.
>>
>> It seems like since the MR job is writing to two HBase tables, it's using
>> two instances of TableOutputFormat in the same thread. This means two
>> instances of HTable in the same thread. From previous discussions(1),
>> HTable
>> shares connection state unless HTablePool is used. Since TableOutputFormat
>> doesn't use HTablePool though, it seems like the first call to
>> TableOutputFormat.close (which calls HTable.flushCommits) will close the
>> connection and the second call to it will then fail. Hence the second
>> table
>> never gets written to
>>
>> If this is the case, then the question becomes just how do you write to
>> two
>> tables in one MR job using TableOutputFormat?
>>
>> 1- http://search-hadoop.com/m/IsdwtMF2pV/HTable+reuse/v=plain
>>
>>
>> On Fri, May 20, 2011 at 2:29 PM, Bill Graham <[email protected]>
>> wrote:
>>
>> > Yes, that's what it seems. I've opened a Pig JIRA for it:
>> >
>> > https://issues.apache.org/jira/browse/PIG-2085
>> >
>> >
>> > On Thu, May 19, 2011 at 1:31 PM, Jean-Daniel Cryans <
>> [email protected]>wrote:
>> >
>> >> Your attachement didn't make it, it rarely does on the mailing lists.
>> >> I suggest you use a gist.github or a pastebin.
>> >>
>> >> Regarding the error, looks like something closed the HCM and someone
>> >> else is trying to use it. Since this is client side, it would point to
>> >> a Pig problem.
>> >>
>> >> J-D
>> >>
>> >> On Thu, May 19, 2011 at 12:28 PM, Keric Donnelly
>> >> <[email protected]> wrote:
>> >> > To All,
>> >> > I'm running into IO issues when trying to write to an Hbase table
>> using
>> >> > multiple STORE commands in PIG script. I can comment out any 2 of the
>> >> STORE
>> >> > statements and run the script and then the data inserts fine. If I
>> try
>> >> and
>> >> > run with all 3  get the following:
>> >> > java.io.IOException:
>> >> >
>> >>
>> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@26c1186f
>> >> > closed
>> >> >
>> >> > I've attached a simplified version of the script to illustrate the
>> >> problem.
>> >> >
>> >> > Any thoughts or comments are appreciated.
>> >> >
>> >> > Thanks
>> >> >
>> >> > Keric
>> >> >
>> >> >
>> >> > --
>> >> >
>> >> > Keric Donnelly
>> >> > Senior Data Architect
>> >> > T 954-689-3291   C 954.683.5445
>> >> >
>> >> > 1401 West Cypress Creek Road, Fort Lauderdale, FL 33309
>> >> >
>> >>
>> >
>> >
>>
>
>

Reply via email to