log_player

This program converts cells in a commit log (in the brokered file system) into a form that allows them to be re-inserted into Hypertable.  It can be used in situations where Hypertable is not coming up due to major filesystem corruption and you need to recover data that has be inserted into the database.

Input

There are four different commit logs for each range server, three logs that persist writes to internal system tables (root, metadata, system) and one commit log for application tables (user).  These logs can be found, for each range server, under the following paths:

/hypertable/servers/rs*/log/root
/hypertable/servers/rs*/log/metadata
/hypertable/servers/rs*/log/system
/hypertable/servers/rs*/log/user

Operation

For this tool to work properly, it needs access to both Hyperspace and the FS broker.  The services can be started as follows:

$ ht cluster start_hyperspace
$ ht start-fsbroker hadoop  # or local, ...

The tool can be run in two modes.  The first mode, specified with the --tsv-output switch, causes the cells in the log to be written into a tree of .tsv files rooted in the current working directory.  The directory tree produced parallels the namespace hierarchy of the tables encountered in the log, with a .tsv file for each unique table encountered in the log.  For example:

$ ht log_player --tsv-output /hypertable/servers/rs6/log/user

$ tree
.
├── alerts
│   └── realtime.tsv
├── cache
│   └── image.tsv
└── search
    ├── blog.tsv
    ├── image.tsv
    └── news.tsv

The .tsv files generated in the --tsv-output mode can be loaded into re-created tables using the LOAD DATA INFILE command.

The second mode, specified with the --stdout switch, causes the cells to be written to the terminal in the following format:

<tablename> '\t' <timestamp> '\t' <rowkey> '\t' <column> '\t' <value>

For example:

$ ht log_player --stdout /hypertable/servers/rs6/log/user

LoadTest  1456961038717377419  212321801        source  ively\\nundiffractiveness\\nundi
LoadTest  1456961038717377420  212322677        source  s\\nrestrip\\nrestrive\\nrestrive
LoadTest  1456961038717377421  212323185        source  sly\\nsacrilegiousness\\nsacrile
LoadTest  1456961038717377422  212324729        source  s\\npsammophile\\npsammophilous\\
LoadTest  1456961038717377423  212325006        source  cartilaginous\\ncarting\\ncartis
LoadTest  1456961038717377424  212325929        source  nah\\nwinnard\\nWinne\\nWinnebago
...