Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-1867

Tool to regenerate an hbase table from the data files

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.20.0
    • 0.20.2, 0.90.0
    • util
    • None

    Description

      The purpose of this JIRA is provide a place to coordinate the development of a utility that will regenerate an hbase table from the data files.

      Here are some comments from stack on this subject from the hbase-user mailing list:

      Well, in the bin directory, there are scripts that do various things with
      the .META. (copy a table, move a table, load a table whose source is hfiles
      written by a mapreduce job; i.e. hbase-48).

      So, to 'regenerate an hbase table from the data files', you'd need to do
      something like the following:

      + delete all exisiting table references from .META.
      + move the backuped up table into position under hbase.rootdir
      + per region under hbase.rootdir, add an entry to .META. Do this by opening
      the .regioninfo file. Its content is needed to generate the rowid for
      .META. and its value becomes the info:regioninfo cell value.

      HBase does not need to be down. On next .META. scan, the newly added
      regions will be noticed. They won't have associated info:server and
      info:startcode entries so master will go ahead and assign them and you
      should be up and running.

      Code-wise, a study of copy_table.rb (this uses old api ... needs updating
      but the concepts are the same) and loadtable.rb would probably be fruitful.

      Attachments

        1. add_table.rb
          4 kB
          Michael Stack

        Issue Links

          Activity

            People

              stack Michael Stack
              elsif elsif
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: