一種防止HBase中數據誤刪除的方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及數據安全技術領域,特別涉及一種防止HBase中數據誤刪除的方法及系統(tǒng)。
【背景技術】
[0002]HBase是一個分布式的、面向列的開源數據庫,HBase中的所有數據文件都存儲在Hadoop的分布式文件系統(tǒng)HDFS上。HBase支持數據節(jié)點的橫向擴展,存儲量也會依賴于節(jié)點的數量。在生產環(huán)境中,HBase表的數據量一般都比較大,誤刪恢復成本比較大。雖然Hadoop的分布式文件系統(tǒng)HDFS有回收站策略,但是對于Hbase的表數據不生效。
[0003]—旦做出刪除Hbase表的操作之后,Hbase的元數據首先會被刪除,然后各個reg1n(數據分區(qū))的數據會被移動到一個叫“archive”的文件夾中,最后Hbase數據的master主線程會在5分鐘之后對archive中的數據進行清除。有時候Hbase的使用者做出刪除操作之后,并不一定在短時間內認識到數據表已經被刪除,當5分鐘之后,數據就徹底不能恢復了。因此,如何防止Hbase表誤刪除,是本領域技術人員需要解決的技術問題。
【發(fā)明內容】
[0004]本發(fā)明的目的是提供一種防止HBase中數據誤刪除的方法及系統(tǒng),能夠防止HBase中數據誤刪除,保證HBase中數據完整性。
[0005]為解決上述技術問題,本發(fā)明提供一種防止HBase中數據誤刪除的方法,包括:
[0006]根據用戶操作在HDFS目錄下設定存儲被刪除的數據文件的存儲文件;
[0007]設定監(jiān)控的時間周期,按照所述時間周期,監(jiān)控Hbase在HDFS目錄下的緩存文件夾是否有新增的數據文件;
[0008]若有,則將新增的所述數據文件存儲到所述存儲文件下。
[0009]其中,所述設定監(jiān)控的時間周期,按照所述時間周期,監(jiān)控Hbase在HDFS目錄下的緩存文件夾是否有新增的數據文件,包括:
[0010]在定時啟動腳本中添加掃描監(jiān)控緩存文件夾程序,并設定定時啟動所述掃描監(jiān)控緩存文件夾程序的時間周期;
[0011]調用所述啟動腳本,按照所述時間周期掃描所述緩存文件夾是否有新增的數據文件。
[0012]其中,所述將新增的所述數據文件存儲到所述存儲文件下包括:
[0013]將新增的所述數據文件移動到所述存儲文件下。
[0014]其中,當用戶出現HBase中數據誤刪除時,還包括:
[0015]在所述存儲文件中確定誤刪除的數據文件,并將誤刪除的所述數據文件移動到Hbase在HDFS中相對應的數據目錄下;
[0016]調用所述Hbase的元數據修復命令對元數據進行修復。
[0017]其中,還包括:
[0018]當所述存儲文件中存儲的數據文件的存儲空間大于閾值時,提醒用戶對所述存儲文件中存儲的數據文件進行清理。
[0019]本發(fā)明提供一種防止HBase中數據誤刪除的系統(tǒng),包括:
[0020]存儲模塊,用于根據用戶操作在HDFS目錄下設定存儲被刪除的數據文件的存儲文件;
[0021]監(jiān)控模塊,用于設定監(jiān)控的時間周期,按照所述時間周期,監(jiān)控Hbase在HDFS目錄下的緩存文件夾是否有新增的數據文件;
[0022]若有,則觸發(fā)存儲模塊將新增的所述數據文件存儲到所述存儲文件下。
[0023]其中,所述監(jiān)控模塊包括:
[0024]設定單元,用于在定時啟動腳本中添加掃描監(jiān)控緩存文件夾程序,并設定定時啟動所述掃描監(jiān)控緩存文件夾程序的時間周期;
[0025]監(jiān)控單元,用于調用所述啟動腳本,按照所述時間周期掃描所述緩存文件夾是否有新增的數據文件。
[0026]其中,所述存儲模塊具體用于:
[0027]將新增的所述數據文件移動到所述存儲文件下。
[0028]其中,當用戶出現HBase中數據誤刪除時,還包括:
[0029]移動模塊,用于在所述存儲文件中確定誤刪除的數據文件,并將誤刪除的所述數據文件移動到Hbase在HDFS中相對應的數據目錄下;
[0030]修復模塊,用于調用所述Hbase的元數據修復命令對元數據進行修復。
[0031]其中,還包括:
[0032]提醒模塊,用于當所述存儲文件中存儲的數據文件的存儲空間大于閾值時,提醒用戶對所述存儲文件中存儲的數據文件進行清理。
[0033]本發(fā)明所提供的防止HBase中數據誤刪除的方法及系統(tǒng),該方法包括:根據用戶操作在HDFS目錄下設定存儲被刪除的數據文件的存儲文件;設定監(jiān)控的時間周期,按照所述時間周期,監(jiān)控Hbase在HDFS目錄下的緩存文件夾是否有新增的數據文件;若是,則將新增的所述數據文件存儲到所述存儲文件下;
[0034]由于HBase中數據被刪除后會放置在緩存文件夾中一定時間,因此該方法通過對緩存文件夾進行監(jiān)控,當發(fā)現有新增的數據文件時,說明用戶將其刪除,將用戶刪除的數據文件存儲在用戶指定的存儲文件下,若用戶發(fā)現數據被誤刪除時,到存儲文件下找到相應的數據即可;因此該方法能夠防止HBase中數據誤刪除,大大減少HBase中數據被刪除后技術人員的工作量。
【附圖說明】
[0035]為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
[0036]圖1為本發(fā)明實施例所提供的防止HBase中數據誤刪除的方法的流程圖;
[0037]圖2為本發(fā)明實施例所提供的防止HBase中數據誤刪除的系統(tǒng)的結構框圖;
[0038]圖3為本發(fā)明實施例所提供的另一防止HBase中數據誤刪除的系統(tǒng)的結構框圖;
[0039]圖4為本發(fā)明實施例所提供的又一防止HBase中數據誤刪除的系統(tǒng)的結構框圖。
【具體實施方式】
[0040]本發(fā)明的核心是提供一種防止HBase中數據誤刪除的方法及系統(tǒng),能夠防止HBase中數據誤刪除,保證HBase中數據完整性。
[0041]為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0042]請參考圖1,圖1為本發(fā)明實施例所提供的防止HBase中數據誤刪除的方法的流程圖;該方法可以包括:
[0043]SlOO、根據用戶操作在HDFS目錄下設定存儲被刪除的數據文件的存儲文件;
[0044]其中,這里的存儲文件可以有用戶指定,存儲文件的作用是為了存儲被用戶刪除的數據文件。
[0045]這里將存儲文件設置在HDFS目錄下,由于Hbase的數據都保存在HDFS中相對應的數據目錄中,因此,當發(fā)現用戶誤操作時,可以快速方便的將存儲文件中相對應的誤刪除的數據文件直接移動到數據目錄中。
[0046]sllO、設定監(jiān)控的時間周期,按照所述時間周期,監(jiān)控Hbase在HDFS目錄下的緩存文件夾是否有新增的數據文件;
[0047]其中,根據Hbase中Hbase表的刪除機制,即刪除Hbase表的操作之后,Hbase的元數據首先會被刪除,然后各個reg1n(數據分區(qū))的數據會被移動到一個叫“archive”的文件夾中即這里的緩存文件夾,最后Hbase數據的master主線程會在5分鐘之后對archive中的數據進行清除。因此,可以定期的掃描Hbase數據在Hadoop分布式文件系統(tǒng)HDFS的“archive”文件夾,這里的監(jiān)控的時間周期可以由用戶自己確定,但是要小于緩存文件夾的清除時間,例如這里要小于5分鐘。
[0048]監(jiān)控Hbase在HDFS目錄下的緩存文件夾是否有新增的數據文件,若沒有,則說明用戶沒有對Hbase中數據進行刪除,若有,則說明用戶對Hbase中數據進行刪除。刪除的數據文件會首先被放到緩存文件夾中。
[0049]其中,這里的監(jiān)控方式可以由用戶自身進行確定,可以編寫定時監(jiān)控程序對緩存文件夾進行監(jiān)控,也可以利用Iinux下的crontab命令建定時啟動任務,優(yōu)選的,可以包括:
[0050]在定時啟動腳本中添加掃描監(jiān)控緩存文件夾程序,并設定定時啟動所述掃描監(jiān)控緩存文件夾程序的時間周期;
[0051]調用所述啟動腳本,按照所述時間周期掃描所述緩存文件夾是否有新增的數據文件。
[0052]其中,這里可以簡單快捷的利用Iinux下的crontab命令建定時啟動任務。在定時啟動腳本中添加掃描監(jiān)控緩存文件夾程序,并設定定時啟動所述掃描監(jiān)控緩存文件夾程序的時間周期;利用crontab命令定時執(zhí)行該啟動腳本,對緩存文件夾進行監(jiān)控。即具體過程可以是:
[0053]在shell指令中設置描監(jiān)控緩存文件夾程序以及執(zhí)行描監(jiān)控緩存文件夾程序;
[0054]在crontab配置文件中添加定時調用所述shell指令任務,設置定時調用所述shell指令的時間周期,刷新crontab的配置。
[0055]sl20、若有,則將新增的所述數據文件存儲到所述存儲文件下。
[0056]其中,將被用戶刪除的數據文件存儲到存儲文件中;這里的存儲方式可以是將緩存文件夾中的新增的數據文件進行備份后,存儲在存儲文件中;也可以優(yōu)選的,將新增的所述數據文件移動到所述存儲文件下。即直接將緩存文件夾中的新增的數據文件移動到存儲文件中。這樣可以節(jié)省存儲空間。
[0057]這里將新增的所述數據文件存儲到所述存儲文件下的操作程序可以設置在定時啟動的監(jiān)控任務中,也可以單獨利用一個程序進行操作,這時需要監(jiān)控任務在發(fā)現有新增的數據文件時觸發(fā)該程序。
[0058]通過上述方法可以防止被用戶誤刪除的數據文件被徹底刪除,造成后續(xù)技術人員大量的恢復工作。
[0059]基于上述技術方案,本發(fā)明實施例提供的防止HBase中數據誤刪除的方法,該方法通過對緩存文件夾進行監(jiān)控,當發(fā)現有新增的數據文件時,說明用戶將其刪除,將用戶刪除的數據文件存儲在用戶指定的存儲文件下,若用戶發(fā)現數據被誤刪除時,到存儲文件下找到相應的數據即可;因此該方法能夠防止HBase中數據誤刪除,大大減少HBase中數據被刪除后技術人員的工作量。
[0060]基于上述技術方案,當用戶出現HBase中數據誤刪除時,還包括:
[0061]在所述存儲文件中確定誤刪除的數據