Hadoop生態圈的基石有兩個,一個是HDFS文件系統,一個是MR編程框架:HDFS性能壓測工具淺析

發表于:2014-06-25來源:淘測試作者:凡提點擊數: 標簽:性能壓測工具
Hadoop生態圈的基石有兩個,一個是HDFS文件系統,一個是MR編程框架。第一彈中提到應用MR編程框架實現大規模多機聯合負載壓測場景的方案,則突出了MR的能力,實際上HDFS作為這一切的

  引言

  Hadoop生態圈的基石有兩個,一個是HDFS文件系統,一個是MR編程框架。第一彈中提到應用MR編程框架實現大規模多機聯合負載壓測場景的方案,則突出了MR的能力,實際上HDFS作為這一切的基礎,所起的作用是不容忽視的。

  HDFS分布式文件系統與一般的文件系統,從本質構成上來說并沒有太大的區別,普通磁盤上的文件系統,例如ext3有數據塊(block),HDFS也有這個概念,ext3的分區表記錄了文件與block、block與扇區的對應關系,同樣HDFS的fsimage文件中也包含了這類信息。對于一個整體的分布式系統來說,HDFS包含兩個重要角色,一個是中心節點Namenode,一個是數據節點Datanode。其中Namenode用來記錄文件目錄結構樹,即元數據fsimag,和各種修改操作信息,即editlog。而Datanode則是數據真正存放的地方,Namenode獲得RPC請求后會將這些請求根據特定算法分發到一些Datanode上。

  由于存在單點結構,因此Namenode機器的性能必須遠超Datanode機器,因為其負載了所有RPC訪問請求,每個RPC請求引起的查詢、IO、audit等動作都會消耗系統資源,Namenode的性能將會極大影響HDFS文件系統的整體性能。而相對來說Datanode的性能就不是那么重要了,當然這也區分具體的應用,例如對于HBase來說,由于Regionserver和Datanode同處于一臺機器,彼此之間存在數據的交換,因此與Datanode的IO性能是有關聯的,性能好壞成正比關系。

  自從誕生HDFS開始,相關的性能壓測工具就出現了,其中一些堪稱經典之作更是檢驗HDFS性能的必用神器。例如Terasort,Slive,DFSIO,下面我就這幾個工具的共同點和各自的特點做一個簡單分析。

  求同存異

  Terasort

  從文件系統角度出發的性能測試工具,大多不離吞吐率這個指標。轉化到HDFS這邊,則是rpc次數、opt次數、sync時長這樣的指標信息,然而Terasort是個異類。這個工具不僅考驗文件系統的性能,更是對MR自動排序能力的一種檢測。Terasort位于hadoop的example包中,是SortBenchmark(http://sortbenchmark.org)排序比賽使用的標準工具,它使用了Hadoop默認的IdentityMapper和IdentityReducer,利用MR自有的sort機制來保證每個partition內數據是有序的。

  顯然我們使用Terasort,判斷HDFS文件系統(其實還包含了MR)性能好壞的依據與SortBenchmark是一致的,即計算數據量和運行時長的比值,根據單位時間的排序數據量來判斷不同HDFS版本之間的性能差異。

  Terasort包含三個工具,分別是teragen:用來生成供排序的隨機數據;terasort:用來將隨機數據排序;teravalidate:校驗terasort的排序結果是否正確。

  通過控制teragen的map數和block size,我們得以檢驗多種測試場景下HDFS的性能狀況。例如執行:

hadoop jar hadoop-current/hadoop-0.19.1-dc-examples.jar teragen -Dmapred.map.tasks=100 -Ddfs.block.size=134217728 10000000000 /terasort/output

  這個命令會在/terasort/output下生成100個10G大小的文件,文件的blocksize是128MB。這就類似于我們在測試單機磁盤IO的時候,分別要獲取零碎文件吞吐率和整塊大文件吞吐率數據一樣??刂苩eragen生成的文件個數,文件大小,雖然總數據量一致,但是terasort的排序時間是有差異的。與普通磁盤不一樣的地方在于,在集群資源不成為瓶頸的時候,文件越零碎,由于可以啟動更多的map并行排序,相當于并發度提高了,terasort的總耗時就會變得更少。

  SliveTest

  SliveTest位于hadoop的test包中,代碼結構清晰,其主要功能是通過大量map制造多種rpc請求,檢測Namenode的性能。我們可以設定map數量,每個map發起的rpc請求次數,每一種rpc操作占總操作的百分比,以及讀寫數據量、block size等配置。下面列出slive可以調用的rpc操作種類:

ls

列出路徑下所有文件和目錄

append

追加寫文件操作

create

創建文件操作

delete

刪除文件操作

mkdir

創建目錄操作

rename

重命名文件操作

read

讀取文件內容操作

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97