SequenceFile在Hadoop中使用

2021-06-06 13:48:39 字數 1495 閱讀 2780

概念:sequencefile是乙個由二進位制序列化過的key/value的位元組流組成的文字儲存檔案,它可以在map/reduce過程中的input/output 的format時被使用。在map/reduce過程中,map處理檔案的臨時輸出就是使用sequencefile處理過的。 所以一般的sequencefile均是在filesystem中生成,供map呼叫的原始檔案。

1.sequencefile特點:

2.sequencefile 有三種壓縮態:

1 uncompressed

– 未進行壓縮的狀

2.record compressed

- 對每一條記錄的value值進行了壓縮(檔案頭中包含上使用哪種壓縮演算法的資訊)

3.block compressed – 當資料量達到一定大小後,將停止寫入進行整體壓縮,整體壓縮的方法是把所有的keylength,key,vlength,value 分別合在一起進行整體壓縮

3.結構組成:

3.1 header資料:儲存檔案的壓縮態標識;

3.2 metadata資料:簡單的屬性/值對,標識檔案的一些其他資訊。metadata 在檔案建立時就寫好了,所以也是不能更改

3.3 追加的鍵值對資料

3.4 流儲存結構:流的儲存頭位元組格式: 

header: 

*位元組頭」seq」, 後跟乙個位元組表示版本」seq4」,」seq6」.//這裡有點忘了 不記得是怎麼處理的了,回頭補上做詳細解釋 

*keyclass name 

*valueclass name 

*compression boolean型的儲存標示壓縮值是否轉變為keys/values值了 

*blockcompression boolean型的儲存標示是否全壓縮的方式轉變為keys/values值了 

*compressor 壓縮處理的型別,比如我用gzip壓縮的hadoop提供的是gzipcodec什麼的.. 

*元資料 這個大家可看可不看的 

4.擴充套件實現:

4.1 mapfile

乙個key-value 對應的查詢資料結構,由資料檔案/data 和索引檔案 /index 組成,資料檔案中包含所有需要儲存的key-value對,按key的順序排列。索引檔案包含一部分key值,用以指向資料檔案的關鍵位置

4.2 setfile – 基於 mapfile 實現的,他只有key,value為不可變的資料。

4.3 arrayfile 

– 也是基於 mapfile 實現,他就像我們使用的陣列一樣,key值為序列化的數字。

4.4 bloommapfile

– 他在 mapfile 的基礎上增加了乙個 /bloom 檔案,包含的是二進位制的過濾表,在每一次寫操作完成時,會更新這個過濾表。

5.使用如下:主要是writer和reader物件完成檔案的新增和讀功能,應用demo參照下面鏈結,其中map端以sequencefileinputformat格式接收,map的key-value應為sequencefile保持一致。

HA集群搭建

搭建ha集群 1 zookeeper集群搭建 a 將zookeeper.tar.gz上傳到node2 node3 node4 b 解壓到 opt tar zxf zookeeper 3.4.6.tar.gz c opt c 配置環境變數 export zookeeper prefix opt zoo...

HA執行流程

1 集群啟動兩個nn,每個nn都會有乙個zkfc,每個zkfc到zookeeper上爭搶乙個臨時節點,哪個優先搶占到了這個臨時節點,哪個就是active,沒有搶到的就是standby 同時變為standby的zkfc會申請臨時節點的watch,監控臨時節點的狀態,若節點發生變化,表示active出現...

DB2在Cluster環境中安裝成HA

環境描述 兩台主機db201和db202,作業系統solaris9,集群管理軟體是suncluster3.2,安裝的db2版本是v8.1.11,共享的儲存目錄為 db2data。目標 實現db2高可用性,一台online,另一台offline,資料存放在 db2data,自由切換資料不丟。安裝步驟 ...