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 >> >> > >> >> >> > >> > >> > >
