Resolve “Orphan region in HDFS: Unable to load .regioninfo from table” in Hbase

Orphan region in HDFS: Unable to load .regioninfo from table

“Orphan region in HDFS: Unable to load .regioninfo from table” usually happens, When “.regioninfo” is unavailable under the HDFS table location. This could be due to manual deletion or corruption

Symptoms:

“Orphan region in HDFS: Unable to load .regioninfo from table” might cause Hbase job failures, Where the Client unable to connect and access this particular region and its data

You can confirm the issue by spotting the below error message in the “hbase hbck” output:

ERROR: Orphan region in HDFS: Unable to load .regioninfo from table ns:testing_table in hdfs dir hdfs://nameservice/hbase/data/ns/testing_table/df96hksd388udb231605690827273c1  It may be an invalid format or version file.  Treating as an orphaned regiondir."

The command used to get the “hbase hbck” output to validate inconsistencies

hbase hbck -details 2>&1 | tee /tmp/hbase-hbck.txt

Resolution:

To fix the above inconsistencies in Hbase, We need to do the below steps

Sideline this orphan dir to HDFS /tmp location

  • mkdir a backup dir on HDFS  by running “hdfs dfs -mkdir /tmp/backup_tbl”
  • then run “hdfs dfs -mv hdfs://nameservice/hbase/data/ns/testing_table/df96hksd3882udb231605690827273c1 /tmp/backup_tbl”

Once we have the backup in the temp location, We can replay the WAL edits manually to load data into the table.

Hbase WALPlayer

Hbase has an internal utility called “WALPlayer” Which has multiple uses, But in this case, We are using this utility to replay the content of a Regions “recovered.editsdirectory

NOTE: Files under the “recovered.edits” will be in the same format as of WAL, 

Now, We are going to use the backup data dir (it will have recovered.edits), and with the help of the backup will able to recover the region data for this table

Example Syntax:

#hbase org.apache.hadoop.hbase.mapreduce.WALPlayer /tmp/backup_tbl ns:testing_table

The above command will trigger a Map Reduce job to complete the task, Post that you can able to see the table data in the hdfs location with “.regioninfo” file

hdfs://nameservice/hbase/data/ns/testing_table/df96hksd3882udb231605690827273c1

To confirm, Run the “hbase hbck” command and check if the inconsistency has been resolved 🙂

Good Luck with your Learning !!

Related Topics:

“hole in the region chain” issue in Hbase

“org.apache.hadoop.hbase.replication.regionserver.ReplicationSink: Unable to accept edit”

“Regions not on HDFS or in hbase:meta but deployed on” issue in Hbase

“org.apache.hadoop.hbase.TableInfoMissingException: No table descriptor file under” in Hbase

Similar Posts