[ https://issues.apache.org/jira/browse/HBASE-13042?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14320618#comment-14320618 ]
Enis Soztutar commented on HBASE-13042: --------------------------------------- Here is an idea. Not sure it will help you or not. {{TableSnapshotInputFormat}} allows you to run any MR job directly over the snapshot. It also accepts key ranges, and eliminates regions out of the range. Without HBASE-13031 a snapshot is still a full table snapshot, but what you can do is: Decide on table ranges (lets say N ranges) {code} for i in 0..N (1) take snapshot (2) use custom MR job to export the data (create hfiles for bulk load) over the snapshot for Range[i] (3) delete the snapshot {code} You will only hold onto the single snapshot during (2), which you can control for how long it will take depending on the size of Range[i]. > MR Job to export HFiles directly from an online cluster > ------------------------------------------------------- > > Key: HBASE-13042 > URL: https://issues.apache.org/jira/browse/HBASE-13042 > Project: HBase > Issue Type: New Feature > Reporter: Dave Latham > > We're looking at the best way to bootstrap a new remote cluster. The source > cluster has a a large table of compressed data using more than 50% of the > HDFS capacity and we have a WAN link to the remote cluster. Ideally we would > set up replication to a new table remotely, snapshot the source table, copy > the snapshot across, then bulk load it into the new table. However the > amount of time to copy the data remotely is greater than the major compaction > interval so the source cluster would run out of storage. > One approach is HBASE-13031 to allow the operators to snapshot and copy one > key range at a time. Here's another idea: > Create a MR job that tries to do a robust remote HFile copy directly: > * Each split is responsible for a key range. > * Map task lookups up that key range and maps it to a set of HDFS store > directories (one for each region/family) > * For each store: > ** List HFiles in store (needs to be less than 1000 files to guarantee > atomic listing) > ** Attempt to copy store files (copy in increasing size order to minimize > likelihood of compaction removing a file during copy) > ** If some of the files disappear (compaction), retry directory list / copy > * If any of the stores disappear (region split / merge) then retry map task > (and remap key range to stores) > Or maybe there are some HBase locking mechanisms for a region or store that > would be better. Otherwise the question is how often would compactions or > region splits force retries. > Is this crazy? -- This message was sent by Atlassian JIRA (v6.3.4#6332)