共計(jì) 1284 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
自動(dòng)寫(xiě)代碼機(jī)器人,免費(fèi)開(kāi)通
這篇文章將為大家詳細(xì)講解有關(guān) HBase 如何增量備份的 python 腳本,丸趣 TV 小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
HBase 自帶的 export/import 機(jī)制可以實(shí)現(xiàn) BackupRestore 功能。而且可以實(shí)現(xiàn)增量備份。
HBase 怎樣增量備份的 python 腳本
在這個(gè)腳本中,每天做增量備份,每個(gè)月 15 日做全備份。
importtime
importdatetime
fromdatetimeimportdate
importsys
importos
tablename=sys.argv[1]
backupDst=sys.argv[2]
today=date.today()
iftoday.day==15://everymonth,wedoafullbackup
backupSubFolder=backupDst+today.isoformat()+ -full
cmd= hbaseorg.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= hbaseorg.apache.hadoop.hbase.mapreduce.Export%s%s%s %(tablename,backupSubFolder,str(int(todayTimeStamp)*1000)
printcmd
os.system(cmd)
HBase 怎樣增量備份的 python 腳本
而 Restore 機(jī)制就更加簡(jiǎn)單
hbaseorg.apache.hadoop.hbase.mapreduce.Importtablenamerestorefolder
要注意的是,做 Restore 時(shí)候,原始的表必須是創(chuàng)建好的。所以如果表本身被損壞,需要重新創(chuàng)建一個(gè)新的空表,再做 Restore。
還有,必須在 Hadoop-env.sh 中配置好 hbase 和 Zookeeper 的路徑,加上這樣的語(yǔ)句
exportHADOOP_CLASSPATH= /usr/lib/hadoop-hbase/hbaseXXX.jar:/usr/lib/hadoop-hbase/lib/zookeeperXXX.jar:/etc/hadoop-hbase/conf
把這個(gè)加到 crontab 里面,就可以實(shí)現(xiàn)每天定時(shí)備份了。
關(guān)于“HBase 如何增量備份的 python 腳本”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
向 AI 問(wèn)一下細(xì)節(jié)