HBAse定期バックアップ
HBAseのExportとImportを使用してバックアップ機能を完了する方法については、以前のブログ「HBAseインクリメンタルバックアップ」を参照してください.
ExportとImportを使用して定期的にバックアップするPythonコードを転載します.毎月15日にフルバックアップを行い、毎日インクリメンタルバックアップを行います.
最後のcmd文字列構築に注意し、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バージョンに対応する場所にバージョン番号を追加します.