小白篇(十八):恢復Hive誤刪的表數據

2021-02-20 數據在此
簡短介紹
大家好,曾幾何時你在集群中寫sql因為「手賤」誤刪表和數據,而痛苦不已。莫慌,今天給大家分享下如何快速恢復數據。(只能恢復數據,表結構無法自動恢復,需重新創建。除非用雲產品或者自研恢復系統。emm我們中臺我會考慮自研恢復系統的)

模擬刪除表

create table dc_dev.wx_20201103(  name string,  address string,  remark string) COMMENT '普通測試表txtfile格式' STORED AS textfile ;insert into dc_dev.wx_20201103 values('張三','上海','測試數據1');insert into dc_dev.wx_20201103 values('李四','杭州','測試數據2');
create table dc_dev.wx_pt_20201103( name string, address string, remark string) COMMENT '分區測試表txtfile格式' PARTITIONED BY (dt string) STORED AS textfile ;insert into dc_dev.wx_pt_20201103 partition(dt='20201103') values('王五','上海浦東','分區測試數據1');insert into dc_dev.wx_pt_20201103 partition(dt='20201103') values('趙六','杭州西湖','分區測試數據2');

drop table dc_dev.wx_20201103;drop table dc_dev.wx_pt_20201103;

說明:如果是生產環境中,表被刪除了。估計很多小夥伴就要「瘋掉」了。會不停的問自己「我該怎麼辦?我該怎麼辦?我是不是改跑路了」。莫慌,解決辦法如下。

Hive數據恢復步驟

1、通過Hue界面,找到被刪除表在Hdfs中垃圾回收站的位置(HDFS默認回收站保留時間為3天,可通過配置調整保留期限)。如果界面用得不習慣,可直接hdfs dfs指令去查找被刪除表所在位置。

說明:hdfs中有一個.Trash(垃圾回收站)目錄。裡面存放著刪除的數據文件。垃圾回收站保留時間是有期限的。默認保留3天,不過可以調整為15天左右。

2、重新創建表,用來接收即將恢復的數據

create table dc_dev.wx_20201103(  name string,  address string,  remark string) COMMENT '普通測試表txtfile格式' STORED AS textfile ;
create table dc_dev.wx_pt_20201103( name string, address string, remark string) COMMENT '分區測試表txtfile格式' PARTITIONED BY (dt string) STORED AS textfile ;

說明:其實表在hdfs中可以理解為是一個目錄而已。重要的是數據文件。我們先重新創建好接收目錄(即:要恢復的表結構)。

3、將數據文件恢復到表中

在恢復步驟1 中我們已經知道了。被刪除的數據文件在回收站的目錄。現在要做的就是將回收站下數據文件,拷貝一份到重新創建的表目錄下就可以了。

hdfs dfs -cp /user/hive/.Trash/201103230000/user/hive/warehouse/dc_dev.db/wx_20201103 /user/hive/warehouse/dc_dev.db/hdfs dfs -cp /user/hive/.Trash/201103230000/user/hive/warehouse/dc_dev.db/wx_pt_20201103 /user/hive/warehouse/dc_dev.db/

4、驗證數據(普通表,到此就完全恢復數據了分區表,還沒有恢復哦,咱們繼續

select * from dc_dev.wx_20201103; 

select * from dc_dev.wx_pt_20201103; 

5、分區表:修復分區元數據,方可恢復數據(分區表,到此完成數據恢復)

msck repair table dc_dev.wx_pt_20201103;

小結

凡是莫慌,一切自有解決之道。理解事物的內在原理,解決起來得心應手。其實hive中的表,對應到底層就是hdfs文件系統。集群中一切皆為文件。那就恢復文件不就好啦。當然,不能說我們知道解決方法了,就能肆無忌憚的去操作。對於生產環境,我們應該抱有敬畏的心理。希望小夥伴們能有所收穫。

如果大家喜歡可關注公眾號,感謝!

相關焦點

  • 達思數據恢復軟體閃電版:恢復誤刪視頻文件有絕招
    今天在電腦裡手動清理磁碟的過程當中,由於操作過快,不小心誤刪了硬碟內20G珍藏多年的電影和視頻,由於文件過大,系統直接默認徹底刪除了,回收站裡也找不到。這些收藏的電影雖然不多但是都是自己喜愛的精品,想必不少電腦玩家也都會有自己心愛的珍藏放在電腦裡面吧?結果就由於自己的一個不小心,苦心收集多年的資料毀於一旦,內心的痛苦可想而知。
  • 深入淺出Hive數據傾斜
    大表中的數據作為Map的輸入,Map()函數對輸入的每一對<k,v>值都能夠方便地和已加載到內存中的小表數據進行連接(使用mapjoin的前提條件是確保內存能夠存入小表的全量數據)。以下2個參數控制Mapjoin的使用:set hive.auto.convert.join= ture; 設置自動化開啟(默認為false)hive.mapjoin.smalltable.filesize=25000000; 設置小表大小的上限(默認為25M)執行Mapjoin 操作,具體語句如下:方案二:將小表放入子查詢
  • Hive數據倉庫實戰
    drop table 的時候數據不會刪除,只會刪掉表結構而已,表結構又叫做元數據。想恢復表結構只需要把這個表再創建一次就行,裡面的數據還存在。所以為了保險防止誤操作,一般Hive數據倉庫都建外部表。,同時獲得多個表的欄位數據,關聯不上的數據將會丟棄。
  • Hive內部表和外部表
    一:內部表和外部表的區別創建表時使用關鍵字external創建的表就是外部表,沒有使用該關鍵字創建的表就是內部表。刪除表時(drop table)內部表會刪除hdfs對應路徑,而外部表不會刪除hdfs對應的路徑, 刪除表無論是內部表和外部表都會刪除元數據(metastore.TBLS、metastore.COLUMNS_V2)二:location關鍵字用於指定hdfs路徑,如果不指定則使用默認的路徑,默認路徑規則為/<hive.metastore.warehouse.dir
  • 手機誤刪照片怎麼恢復?手把手教你恢復!
    手機誤刪照片怎麼恢復?手把手教你恢復!手把手教你恢復!生活中我們常常清理手機中無用的圖片以騰出手機內存,如果誤刪了照片怎麼恢復呢?手機相片誤刪了到底怎麼恢復又快又好?其實按照這幾步可以迅速搞定!大家快和小編一起來看看吧!
  • 行車記錄儀刪除的記錄能恢復嗎?SD卡數據誤刪輕鬆恢復
    行車記錄儀刪除的記錄能恢復嗎?不管什麼設備每天使用,我們內存卡數據存滿後,會定期清理不用的數據,想要恢復自己行車記錄儀的視頻其實沒有想像中那麼難,記得去年我的行車記錄儀數據存滿後,原本本是準備要存檔保存的,但不小心手抖把裡面的視頻誤刪了。其實我相信不僅是我一個人免不了誤刪數據這種情況的出現,那麼SD卡數據如果被誤操作刪除了該怎麼恢復呢?
  • Hadoop數據分析之Hive
    對於Hive來說默認就是mapreduce任務Hive:數據類型基本數據類型類型名稱描述舉例booleantrue/falsetruetinyint1位元組的有符號整數1smallint2位元組的有符號整數1int4位元組的有符號整數1bigint8位元組的有符號整數1float4位元組單精度浮點數1.0
  • 數據蛙:手機照片誤刪怎麼恢復?(華為手機實用篇)
    華為手機恢復刪除照片方法二——華為雲空間如果您還是擔心當你想起誤刪照片但又超過30天,沒辦法從[最近刪除]找回照片,數據蛙恢復專家還是建議平時不要隨便刪除照片,而是可以把照片保存在華為雲服務上。多備份手機各種各樣數據信息的習慣性的話,就不用再擔心誤刪了。
  • linux誤刪數據恢復
    windows有垃圾箱,比較容易恢復。Linux下的文件一旦被刪除,是難以恢復的。儘管刪除命令只是在文件節點中作刪除標記,並不真正清除文件內容,但是其他用戶和一些有寫盤動作的進程會很快覆蓋這些數據。不過,對於家庭單機使用的Linux,或者誤刪文件後及時補救,還是可以恢復的。本文分享了一些方法或許能幫到你。
  • 怎麼恢復誤刪的微信好友?數據兔恢復好友原來這麼簡單
    怎麼恢復誤刪的微信好友?那麼到底怎麼恢復誤刪的微信好友?今天可以分享一個特別強大的數據恢復軟體,讓你不必後悔。 這款軟體叫數據兔,是由深圳市微視覺科技有限公司所研發,短短3年憑藉強大的研發實力和高恢復成功率已經為海內外超過3000萬用戶服務,找回珍貴數據。
  • 回收站清空了照片怎麼恢復?恢復誤刪照片
    回收站清空了照片怎麼恢復?回收站是電腦系統中的一個獨立文件夾,其主要功能就是保存臨時刪除的文件。如果一個文件從回收站中被刪除,或是被Shift+Delete組合鍵刪除的話,那麼就意味著文件被從電腦上永久刪除了。如果誤刪了回收站裡有用的文件導致文件被永久刪除了該如何去恢復呢?
  • 微信聊天記錄誤刪怎麼恢復?帶你一分鐘掌握技巧!
    微信聊天記錄誤刪怎麼恢復?微信聊天記錄對於很多人而言,都非常的重要,因此一旦發生誤刪的情況,都會帶來一定的麻煩,那有什麼方法可以恢復誤刪的微信聊天記錄呢?今天小編就圍繞這個問題,給大家分享幾個好用的恢復妙招,如果你正好被這個問題困擾,那就千萬不要錯過喲!
  • 蘋果6s照片刪除了怎麼恢復?iPhone6s誤刪照片恢復教程
    蘋果6s照片刪除了怎麼恢復:恢復工具:1)常用的電腦;2)誤刪照片的蘋果手機;3)開心手機恢復大師;蘋果6s照片刪除了怎麼恢復?恢復教程:第一步:我們首先在電腦當中下載開心手機恢復大師,因為我們需要藉助這款軟體恢復蘋果手機裡刪掉的照片。可以直接去開心手機恢復大師的官網根據自己的電腦系統下載適合的版本。同時用數據線將蘋果6s連接到電腦上。
  • 手機照片誤刪如何恢復呢?剖析數據原理帶你恢復!
    在大家平時使用手機的時候,都有手機照片刪除了想要恢復的情況,誤刪其實是很常見的事情,想要恢復照片其實不一定要控制自己不小心刪除的習慣,如果能直接找回誤刪的手機照片,就不害怕清理手機了。今天我們就來看看,恢復聊天記錄的方法吧!
  • u盤文件誤刪怎麼恢復?專業U盤數據恢復軟體
    U盤文件誤刪怎麼恢復?在使用U盤過程中,我們遇到U盤各種故障該怎麼有效應對?別著急,小嗨都會在這篇文章裡一一為大家解惑!最常見的情況就是很多小夥伴把一些文件等數據整理好以後,就直接將文件保存到U盤裡面了,結果一不小心手誤將文件刪除了,電腦上刪除還有回收站,U盤內則連肉眼找回數據的機會都沒有了。
  • MySQL恢復delete的數據
    MySQL數據表InnoDB引擎表誤刪恢復(共享表空間ibdata1)和獨立表空間MySQL數據表InnoDB引擎表誤刪恢復(獨立表空間innodb_file_per_table=1)的情況下如何恢復數據、如果不幸誤刪了資料庫MySQL資料庫誤刪恢復。
  • 手機照片誤刪怎麼恢復?蘋果用戶不能錯過的妙招
    手機照片誤刪怎麼恢復?照片是我們手機中一大佔用內存高手,當手機出現內存不足的情況時,很多小夥伴第一個想到清理的就是照片,若是不小心將有意義的照片刪掉了,有什麼方法找回呢?下面小編分享給大家幾個照片恢復方法,一起來看看吧!
  • 蘋果手機照片誤刪怎麼恢復?Iphone設備如何恢復誤刪的照片
    蘋果手機照片誤刪怎麼恢復?Iphone設備如何恢復誤刪的照片?手機中的數據被誤刪,我們要儘量去避免,若是在丟失前做好了備份,倒也不用擔心,但丟失了還沒有備份的數據,我們還要考慮的就是恢復數據了,本文以照片為例,給大家介紹一下蘋果怎麼恢復刪除的照片的恢復操作方法。
  • 大數據分析師工程師入門6-HIVE進階
    本文為《大數據分析師入門課程》系列的第6篇,主要講解大數據分析師在工作中需要用到的
  • 手機誤刪照片怎麼恢復?專業方法才可靠!
    ,這種情況我們可以使用專業的數據工具進行恢復,而「開心手機恢復大師」就挺不錯的!操作簡單,恢復效果行業領先!  運行開心手機恢復大師,選擇【通過設備掃描恢復】將手機連接至電腦,當然,在這裡小編還是建議有數據備份的用戶選擇【通過iTunes備份恢復】或【通過iCloud備份恢復】模式,這樣恢復的機率會大一些!