HBAse定期バックアップ


HBAseのExportとImportを使用してバックアップ機能を完了する方法については、以前のブログ「HBAseインクリメンタルバックアップ」を参照してください.
ExportとImportを使用して定期的にバックアップするPythonコードを転載します.毎月15日にフルバックアップを行い、毎日インクリメンタルバックアップを行います.
import time  
import datetime  
from datetime import date  
import sys  
import os  
  
tablename=sys.argv[1]  
backupDst=sys.argv[2]  
today=date.today()  
if today.day == 15:    //every month, we do a full backup  
        backupSubFolder=backupDst+today.isoformat()+"-full"  
        cmd="hbase org.apache.hadoop.hbase.mapreduce.Export %s %s"%(tablename,backupSubFolder)  
else:  
  
        yesterday=datetime.date.today()- datetime.timedelta(days=1)  
        todayTimeStamp=time.mktime(today.timetuple())  
        yesTimeStamp=time.mktime(yesterday.timetuple())  
        backupSubFolder=backupDst+today.isoformat()  
        cmd="hbase org.apache.hadoop.hbase.mapreduce.Export %s %s %s"%(tablename,backupSubFolder,str(int(todayTimeStamp)*1000)  
  
print cmd  
  
os.system(cmd)

最後のcmd文字列構築に注意し、HBAseバージョンに対応する場所にバージョン番号を追加します.