Hi folks. I'd like to run the following data loss scenario by you to see if
we are doing something obviously wrong with our setup here.

Setup:

   - Hadoop 0.20.1
   - HBase 0.20.3
   - 1 Master Node running Nameserver, SecondaryNameserver, JobTracker,
   HMaster and 1 Zookeeper (no zookeeper quorum right now)
   - 4 child nodes running a Datanode, TaskTracker and RegionServer each
   - dfs.replication is set to 2
   - Host: Amazon EC2

Up until yesterday, we were frequently experiencing
HBASE-2077<https://issues.apache.org/jira/browse/HBASE-2077>,
which kept bringing our RegionServers down. What we realized though is that
we were losing data (a few hours worth) with just one out of four
regionservers going down. This is problematic since we are supposed to
replicate at x2 out of 4 nodes, so at least one other node should be able to
theoretically serve the data that the downed regionserver can't.

Questions:

   - When a regionserver goes down unexpectedly, the only data that
   theoretically gets lost was whatever didn't make it to the WAL, right? Or
   wrong? E.g.
   http://www.larsgeorge.com/2010/01/hbase-architecture-101-write-ahead-log.html
   - We ran a hadoop fsck on our cluster and verified the replication factor
   as well as that the were no under replicated blocks. So why was our data not
   available from another node?
   - If the log gets rolled every 60 minutes by default (we haven't touched
   the defaults), how can we lose data from up to 24 hours ago?
   - When the downed regionserver comes back up, shouldn't that data be
   available again? Ours wasn't.
   - In such scenarios, is there a recommended approach for restoring the
   regionserver that goes down? We just brought them back up by logging on the
   node itself an manually restarting them first. Now we have automated crons
   that listen for their ports and restart them if they go down within two
   minutes.
   - Are there way to recover such lost data?
   - Are versions 0.89 / 0.90 addressing any of these issues?
   - Curiosity question: when a regionserver goes down, does the master try
   to replicate that node's data on another node to satisfy the dfs.replication
   ratio?

For now, we have upgraded our HBase to 0.20.6, which is supposed to contain
the HBASE-2077 <https://issues.apache.org/jira/browse/HBASE-2077> fix (but
no one has verified yet). Lars' blog also suggests that Hadoop 0.21.0 is the
way to go to avoid the  file append issues but it's not production ready
yet. Should we stick to 0.20.1? Upgrade to 0.20.2?

Any tips here are definitely appreciated. I'll be happy to provide more
information as well.

-GS

Reply via email to