導航:首頁 > 歷史問題 > hbase如何清理歷史數據

hbase如何清理歷史數據

發布時間:2021-02-10 09:40:32

1. 怎樣用maprece取出hbase的歷史數據並上傳到hdfs中

驅動函數實現
與WordCount的驅動類不同,在Job配置的時候沒有配置job.setMapperClass(),而是用以下方法執行Mapper類: TableMapReceUtil.initTableMapperJob(tablename,scan,WordCountHbaseReaderMapper.class, Text.class, Text.class, job);
該方法指明了在執行job的Map過程時,數據輸入源是hbase的tablename表,通過掃描讀入對象scan對表進行全表掃描,為Map過程提供數據源輸入,通過WordCountHbaseReaderMapper.class執行Map過程,Map過程的輸出key/value類型是 Text.class與Text.class,最後一個參數是作業對象。特別注意:這里聲明的是一個最簡單的掃描讀入對象scan,進行表掃描讀取數據,其中scan可以配置參數,這里為了例子簡單不再詳述,用戶可自行嘗試。
詳細源碼請參考:WordCountHbaseReader\src\com\zonesion\hbase\WordCountHbaseReader.java
public static void main(String[] args) throws Exception {
String tablename = "wordcount";
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "Master");
String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
if (otherArgs.length != 1) {
System.err.println("Usage: WordCountHbaseReader <out>");
System.exit(2);
}
Job job = new Job(conf, "WordCountHbaseReader");
job.setJarByClass(WordCountHbaseReader.class);
//設置任務數據的輸出路徑;
FileOutputFormat.setOutputPath(job, new Path(otherArgs[0]));
job.setRecerClass(WordCountHbaseReaderRece.class);
Scan scan = new Scan();
TableMapReceUtil.initTableMapperJob(tablename,scan,WordCountHbaseReaderMapper.class, Text.class, Text.class, job);
//調用job.waitForCompletion(true) 執行任務,執行成功後退出;
System.exit(job.waitForCompletion(true) ? 0 : 1);

2. hbase清理數據 用setTimeRange 方法怎麼腳本實現

HBase是 Bigtable的開源實現,它利用Hadoop HDFS作為其文件存儲系統,利用Hadoop MapRece來處理HBase中的海量數據,利用Zookeeper作為協同服務。

1. 簡介

HBase是一個分布式的、面向列的開源資料庫,源於google的一篇論文《bigtable:一個結構化數據的分布式存儲系統》。HBase是Google Bigtable的開源實現,它利用Hadoop HDFS作為其文件存儲系統,利用Hadoop MapRece來處理HBase中的海量數據,利用Zookeeper作為協同服務。

2. HBase的表結構

HBase以表的形式存儲數據。表有行和列組成。列劃分為若干個列族/列簇(column family)。

Row Key column-family1 column-family2 column-family3
column1 column2 column1 column2 column3 column1
key1
key2
key3

如上圖所示,key1,key2,key3是三條記錄的唯一的row key值,column-family1,column-family2,column-family3是三個列族,每個列族下又包括幾列。比如column-family1這個列族下包括兩列,名字是column1和column2,t1:abc,t2:gdxdf是由row key1和column-family1-column1唯一確定的一個單元cell。這個cell中有兩個數據,abc和gdxdf。兩個值的時間戳不一樣,分別是t1,t2, hbase會返回最新時間的值給請求者。
這些名詞的具體含義如下:
(1) Row Key
與nosql資料庫們一樣,row key是用來檢索記錄的主鍵。訪問hbase table中的行,只有三種方式:
(1.1) 通過單個row key訪問
(1.2) 通過row key的range
(1.3) 全表掃描
Row key行鍵 (Row key)可以是任意字元串(最大長度是 64KB,實際應用中長度一般為 10-100bytes),在hbase內部,row key保存為位元組數組。
存儲時,數據按照Row key的字典序(byte order)排序存儲。設計key時,要充分排序存儲這個特性,將經常一起讀取的行存儲放到一起。(位置相關性)
注意:
字典序對int排序的結果是1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,…,9,91,92,93,94,95,96,97,98,99。要保持整形的自然序,行鍵必須用0作左填充。
行的一次讀寫是原子操作 (不論一次讀寫多少列)。這個設計決策能夠使用戶很容易的理解程序在對同一個行進行並發更新操作時的行為。
(2) 列族 column family
hbase表中的每個列,都歸屬與某個列族。列族是表的chema的一部分(而列不是),必須在使用表之前定義。列名都以列族作為前綴。例如courses:history , courses:math 都屬於 courses 這個列族。
訪問控制、磁碟和內存的使用統計都是在列族層面進行的。實際應用中,列族上的控制許可權能幫助我們管理不同類型的應用:我們允許一些應用可以添加新的基本數據、一些應用可以讀取基本數據並創建繼承的列族、一些應用則只允許瀏覽數據(甚至可能因為隱私的原因不能瀏覽所有數據)。
(3) 單元 Cell
HBase中通過row和columns確定的為一個存貯單元稱為cell。由{row key, column( =<family> + <label>), version} 唯一確定的單元。cell中的數據是沒有類型的,全部是位元組碼形式存貯。
(4) 時間戳 timestamp
每個cell都保存著同一份數據的多個版本。版本通過時間戳來索引。時間戳的類型是 64位整型。時間戳可以由hbase(在數據寫入時自動 )賦值,此時時間戳是精確到毫秒的當前系統時間。時間戳也可以由客戶顯式賦值。如果應用程序要避免數據版本沖突,就必須自己生成具有唯一性的時間戳。每個cell中,不同版本的數據按照時間倒序排序,即最新的數據排在最前面。
為了避免數據存在過多版本造成的的管理 (包括存貯和索引)負擔,hbase提供了兩種數據版本回收方式。一是保存數據的最後n個版本,二是保存最近一段時間內的版本(比如最近七天)。用戶可以針對每個列族進行設置。
3. HBase shell的基本用法
hbase提供了一個shell的終端給用戶交互。使用命令hbase shell進入命令界面。通過執行 help可以看到命令的幫助信息。
以網上的一個學生成績表的例子來演示hbase的用法。
name grad course
math art
Tom 5 97 87
Jim 4 89 80
這里grad對於表來說是一個只有它自己的列族,course對於表來說是一個有兩個列的列族,這個列族由兩個列組成math和art,當然我們可以根據我們的需要在course中建立更多的列族,如computer,physics等相應的列添加入course列族。

3. hbase是怎樣刪除和修改數據的,和oracle這類傳統的rdbms有什麼區別

簡單來說,傳統關系型資料庫的修改與刪除,可以快速通過主鍵、列或索引直接鎖定到某一行或某些行,進行物理刪除。
而對於Hbase來說,受到hdfs文件系統的局限(hdfs文件系統不能修改,添加也很不方便),進行CRUD的操作就會變得相對復雜。
Hbase的修改,是根據某個行鍵添加一行數據,並未這行數據生成一個較新的時間戳來實現,每個行鍵都會對應多個時間戳的數據,那麼最新的時間戳就是最終修改後的內容。
而刪除則是通過標記來實現,如果要刪除某行記錄,Hbase會添加一個帶有刪除標記的行,通過這個刪除標記來辨認該行建的數據是否刪除。
Hbase與關系型資料庫的區別:
1、場景
Hbase是面向列的資料庫,適合大量的插入的同時又要具備不俗的讀功能,而Oracle或其他關系型資料庫適合處理比較復雜的業務關系或事務處理,而且,在數據在一定量級下都會有良好的表現,並不是所有業務的數據壓力都會發生比較極端的情況。
2、索引
Hbase只能做主鍵索引,而關系型資料庫可以根據需求不同加入適合的索引機制,供用戶查詢。
3、瓶頸
Hbase的瓶頸是硬碟的傳輸速度,Oracle的瓶頸是硬碟的尋道時間(可以看做是硬碟的轉數)。
4、業務
Hbase適合按照時間排序的業務,而Oracle或其他關系型資料庫應用比較廣泛,如OLTP或OLAP

4. hbase刪除標簽的數據什麼時候徹底刪除

可以使用如下兩個jquery方法來實現:$(selector).remove(); // 除被選元素,包括所有文本和子節點$(selector).attr(); // 返回被選元素的屬性值。實例演示:點擊圖標刪除li,同時獲取被刪除圖片的信息創建Html元素點擊刪除圖標刪除li,同時獲取被刪除圖片的信息:設置css樣式div.box{width:300px;padding:20px;margin:20px;border:4px dashed #ccc;}div.box>span{color:#999;font-style:italic;}div.content{width:250px;margin:10px 0;padding:20px;border:2px solid #ff6666;}li{list-style: none;}img.show_i{width:100px;}img.del_i{width:20px;cursor:pointer;}編寫jquery代碼$(function(){ $("ul#del img.del_i").click(function() {var name = $(this).siblings('img').attr("src"); // 被刪除圖片名稱$(this).parent("li").remove(); // 刪除父元素lialert(name);});});觀察效果初始樣式點擊刪除第二個li

5. hbase是怎樣刪除和修改數據的

hbase提供了對hbase進行一系列的管理涉及到對表的管理、數據的回操作java
api。
常用的api操作有:
1、
對表的創建、刪除答、顯示以及修改等,可以用hbaseadmin,一旦創建了表,那麼可以通過htable的實例來訪問表,每次可以往表裡增加數據

6. 如何清空hbase中meta中無效的數據

由於操作HBase比較粗獷,有時直接在Hadoop中刪除hbase對應的表,導致.META.中還記錄著表項,但實際存儲空間中版卻沒找到。這樣就會導致HBase的log中總在報錯,說找不到xxx表,而且log在飛快增長。
辦法是刪除.META.中對應表項。
原來,.META.和-ROOT-其實也是hbase的兩個特殊的表,這就是說,我們可以scan、delete等對其進行操作。
1. scan 『.META.'
可以看到,本來已經刪除的表,還在這里存在記錄。而且每個表,會分別對應3行記錄。
2. delete對應的行。
刪除.META.表項與刪除table中一行一樣,輸入:
delete '.META.',row,column
delete後加上3個參數,分別是:表、行、列(如 a:b)就能刪除對權應行。
之後重啟hbase,報錯就會消失。

7. hbase 什麼時候會刪除舊的數據

在compaction發生的時候才會實際刪除數據

8. hbase table 會刪掉以前的數據嗎

CopyTable是Hbase提供的一個很有用的備份工具。主要可以用於集群內部表備份,遠程集群備版份,表數據增量備份,部分權結構數據部分等。其依賴於Hadoop maprece,使用標準的hbase scan讀介面和put寫介面。
使用之前,請務必先在集群中創建好需要寫入的目標表tableDst,不然會報錯,同時注意對於在備份期間新寫入的數據無法保證都進行復制到目標表中。

# create new tableOrig on destination cluster

dstCluster$
echo
"create 'tableOrig', 'cf1', 'cf2'"
|
hbase

9. hbase怎麼刪除數據在linux下面

1. Native Java API,最抄常規和高效的訪問方式襲,適合Hadoop MapRece Job並行批處理HBase表數據。 2. HBase Shell,HBase的命令行工具,最簡單的介面,適合HBase管理使用。 3. Thrift Gateway,利用Thrift序列化技術,支持C++,PHP,Python等多...

10. 如何清空hbase緩存

電腦垃圾緩存是會不斷產生的,所以需要經常清理才行
可以使用軟體清理,因為手動容易誤刪
打開電腦管家,然後找到清理垃圾,會自動檢測出電腦裡面存在的垃圾,然後一鍵刪除就行了。

閱讀全文

與hbase如何清理歷史數據相關的資料

熱點內容
歷史知識薄弱 瀏覽:23
軍事理論心得照片 瀏覽:553
歷史故事的啟發 瀏覽:22
美自然歷史博物館 瀏覽:287
如何評價韓國歷史人物 瀏覽:694
中國煉丹歷史有多久 瀏覽:800
郵政歷史故事 瀏覽:579
哪裡有革命歷史博物館 瀏覽:534
大麥網如何刪除歷史訂單 瀏覽:134
我心目中的中國歷史 瀏覽:680
如何回答跨考歷史 瀏覽:708
法國葡萄酒歷史文化特色 瀏覽:577
歷史人物評價唐太宗ppt 瀏覽:789
泰安的抗日戰爭歷史 瀏覽:115
七上歷史第四課知識梳理 瀏覽:848
歷史老師職稱需要什麼專業 瀏覽:957
什麼標志軍事信息革命進入第二階段 瀏覽:141
正確評價歷史人物ppt 瀏覽:159
ie瀏覽器如何設置歷史記錄時間 瀏覽:676
高一歷史必修一第十課鴉片戰爭知識點 瀏覽:296