成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于Hadoop云盤系統3:小文件存儲優化

大數據 Hadoop
首先明確概念,這里的小文件是指小于HDFS系統Block大小的文件(默認64M),如果使用HDFS存儲大量的小文件,將會是一場災難。

 一、概述

首先明確概念,這里的小文件是指小于HDFS系統Block大小的文件(默認64M),如果使用HDFS存儲大量的小文件,將會是一場災難,這取決于HDFS的實現機制和框架結構,每一個存儲在HDFS中的文件、目錄和塊映射為一個對象存儲在NameNode服務器內存中,通常占用150個字節。如果有1千萬個文件,就需要消耗大約3G的內存空間。如果是10億個文件呢,簡直不可想象。這里需要特別說明的是,每一個小于Block大小的文件,存儲是實際占用的存儲空間仍然是實際的文件大小,而不是整個block大小。

為解決小文件的存儲Hadoop自身提供了兩種機制來解決相關的問題,包括HAR和SequeueFile,這兩種方式在某些方面解決了本層面的問題,單仍然存在著各自的不足。下文講詳細說明。

二、Hadoop HAR

Hadoop Archives (HAR files) ,這個特性從Hadoop 0.18.0版本就已經引入了,他可以將眾多小文件打包成一個大文件進行存儲,并且打包后原來的文件仍然可以通過Map-reduce進行操作,打包后的文件由索引和存儲兩大部分組成,索引部分記錄了原有的目錄結構和文件狀態。其原理如下圖所示:

缺點:

1.HAR 方式雖然能夠實現NameNode內存空間的優化,但是他是一個人工干預的過程,同時他既不能夠支持自動刪除原小文件,也不支持追加操作,當有新文件進來以后,需要重新打包。

2.HAR files一旦創建就不能修改,要做增加和修改文件必須重新打包。事實上,這對那些寫后便不能改的文件來說不是問題,因為它們可以定期成批歸檔,比如每日或每周。

3.HAR files目前還不支持文檔壓縮。

三、SequeuesFile

Sequence file由一系列的二進制key/value組成,如果key為小文件名,value為文件內容,則可以將大批小文件合并成一個大文件。Hadoop-0.21.0版本開始中提供了SequenceFile,包括Writer,Reader和SequenceFileSorter類進行寫,讀和排序操作。該方案對于小文件的存取都比較自由,不限制用戶和文件的多少,支持Append追加寫入,支持三級文檔壓縮(不壓縮、文件級、塊級別)。其存儲結構如下圖所示:

示例代碼如下所示:

  1. private static void writeTest(FileSystem fs, int count, int seed, Path file,  
  2.                                CompressionType compressionType, CompressionCodec codec) 
  3.    throws IOException { 
  4.    fs.delete(file, true); 
  5.    LOG.info("creating " + count + " records with " + compressionType + 
  6.             " compression"); 
  7.  
  8.  //指明壓縮方式 
  9.    SequenceFile.Writer writer =  
  10.      SequenceFile.createWriter(fs, conf, file,  
  11.                                RandomDatum.class, RandomDatum.class, compressionType, codec); 
  12.    RandomDatum.Generator generator = new RandomDatum.Generator(seed); 
  13.    for (int i = 0; i < count; i++) { 
  14.      generator.next(); 
  15.  
  16.  //keyh 
  17.      RandomDatum key = generator.getKey(); 
  18.  
  19.  //value 
  20.      RandomDatum value = generator.getValue(); 
  21. /追加寫入 
  22.      writer.append(key, value); 
  23.    } 
  24.    writer.close(); 
  25.  } 

  缺點:

  目前為止只發現其Java版本API支持,未在其他開發接口中發現相關版本的實現,尤其是LibHDFS和thrift接口中,可能真是C++陣營狂熱支持者的一個悲劇。

四、Hbase

  如果你需要處理大量的小文件,并且依賴于特定的訪問模式,可以采用其他的方式,比如Hbase。Hbase以MapFiles存儲文件,并支持Map/Reduce格式流數據分析。對于大量小文件的處理,也不失為一種好的選擇。

原文鏈接:http://www.cnblogs.com/hadoopdev/archive/2013/03/08/2950121.html

 

【編輯推薦】

 

責任編輯:彭凡 來源: 博客園
相關推薦

2013-03-07 14:47:14

Hadoop

2013-03-08 10:09:30

Hadoop

2015-10-21 11:39:41

Ceph小文件存儲海量數據存儲

2015-03-04 09:39:31

對象存儲系統Hadoop云存儲系統

2022-04-21 09:26:41

FastDFS開源分布式文件系統

2020-08-13 14:58:06

Spark小文件存儲

2021-08-18 09:37:27

云存儲成本云端

2018-03-07 10:35:45

云計算存儲系統

2012-10-09 16:37:20

FastDFS

2024-05-31 13:29:47

2014-01-24 09:58:45

fuse文件系統

2011-08-17 10:22:14

2014-04-01 13:34:40

酷盤云存儲光影足跡

2020-08-23 11:48:44

Python云盤updog

2012-02-29 14:55:29

云存儲網盤評測

2009-07-30 09:27:40

2016-12-01 11:55:00

企業云盤聯想云盤

2013-10-23 11:22:47

HadoopHadoop處理大量小

2012-05-21 16:08:07

Hadoop云計算

2011-12-08 17:53:56

DBank網盤華為云存儲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 三级av在线| 粉嫩国产精品一区二区在线观看 | 97色在线视频 | 日韩二区 | 亚洲精品1区2区3区 91免费看片 | 麻豆精品国产91久久久久久 | 国产成人精品亚洲日本在线观看 | 国产线视频精品免费观看视频 | 久久国内精品 | 国产精品免费在线 | 亚洲免费婷婷 | 丝袜美腿一区二区三区动态图 | 毛片一区二区 | 成人精品一区二区三区中文字幕 | av片免费 | 男女羞羞视频在线看 | 99免费视频 | 欧美成人hd | 二区视频 | 亚洲欧洲日韩 | 日本中文字幕日韩精品免费 | 国产精品久久国产精品99 | 欧美一区日韩一区 | 亚洲日本成人 | 久久精品色欧美aⅴ一区二区 | 国产美女一区二区三区 | 日韩久久久久久 | 精品网站999 | 麻豆av一区二区三区久久 | 国产成人99久久亚洲综合精品 | 久久一区二区三区免费 | 欧美成人h版在线观看 | 日韩aⅴ视频| 国产日韩欧美一区二区 | 亚州综合在线 | 中文字幕一区二区三区四区 | 久久久国产精品一区 | 欧美精品二区 | 午夜资源 | 在线一区二区国产 | 我想看国产一级毛片 |