HDFSソースコードリーディング(第2回)三上俊輔2010/12/17
自己紹介筑波大学大学院1年Hadoop, Gfarmなど分散ファイルシステムを研究中(主に性能評価など)Twitter: @shun0102三上俊輔の研究日記 : http://shun0102.net
HDFSリーディング概要第一回org.apache.hadoop.fsを中心に見た第二回HDFS-265のappendDesign3.pdfを元にブロックの状態管理について第三回一貫性障害からの復帰
前回の内容HadoopのファイルシステムはプラガブルHadoopMapReduceorg.apache.hadoop.fs.FileSystemHDFS clientOther Filesystems clientHDFS serverOther Filesystems server
Append/Hflush/Read DesignHDFS-265の appendDesign3.pdfAppendを実装するためにのデザイン設計HDFSの書き込み時、読み込み時、エラー処理の時の振る舞いが細かく書かれているHadoop 0.21これを読むことで、HDFSの一貫性モデル、故障時の振る舞いが具体的にわかる今回は2章をメインに
ブロックの状態管理DataNodeでのブロックをレプリカと呼び、NameNodeでのブロックはブロックと呼ぶNameNode{Finename, numReplicas, block-ids}{block-id, datanodes}ブロックの状態DataNodesblock-idblock-idblock-idレプリカの状態レプリカの状態レプリカの状態
Append 導入前initCreateTemporaryFinalizedCloseOpen for AppendAppend導入後errordelete
なぜAppendのために新しいブロックの状態が必要か?Temporaryと finalized のみの状態管理では既にfinalized したブロックを失う可能性があるfileappendブロックを失ってしまうerrorTemporary block
Appendの目標Appendする前のデータに対する強い耐障害性Hflushしたデータに対する best effortな耐障害性※以前はAtoimicな追記(Hadoop-1700)を目指していたが、今回はAtomicではないHflush: Datanodeに転送してackが戻ってきたデータ
DataNodeのレプリカの状態以下の5状態があり、これはDataNodeのメモリ上で管理されるFinalizedRbw (Replica Being Written to)Rwr (Replica Waiting to be Recovered)Rur (Replica Under Recovery)Temporary
Finalized書き込みが終了し、appendのために再オープンされない限りも書き込まれない状態
Rbw (Replica Being Written to)レプリカが作成されるかappendされる時にrbw状態になる常にファイルの最後のブロック同じblock idの他のレプリカとデータサイズが一致していない状態Bytes はリーダーに見えるが、全てではないかもしれない障害時に出来るだけ保持しようとする
Rwr (Replica Waiting to be Recovered)データノードが死んで再起動した時、全ての rbwレプリカは rwrになるパイプラインには復帰しないので、新しいバイトは受け取らないクライアントが生きてれば無効になるクライアントも死んでいればリースリカバリに参加する
リースリカバリとはNameNode{Finename, lease expire, lease holder}Updatelease holderClientWriteDataNode
Rur (Replica Under Recovery)リースリカバリの結果、レプリカを復旧する時にこの状態になる
Temporaryレプリカ作成か、クラスタのバランシングのためのレプリカRbwと共通点は多いが、リーダーには見えず、DataNodeの再起動時には削除されるdeletedfail or DN restartTemporaryReplicainitreplicate/copy for balancingsucceedsFinalizedReplica
ディスク上での保存方法dfs.data.dir以下の3つのサブディレクトリに保存されるcurrent (finalized)再起動時に全て finalized レプリカになるtmp (temporary)再起動時に全て削除されるrbw (rbw, rwr, rur)再起動時に全て rwrレプリカになる
レプリカの状態遷移initCreateReplicaBeingWrittenFinalizedReplicacloseWriteAppendReplicaRecaveryfinishesReplica recovery startsDN restartsDN diesDN diesReplicaWaiting ToRecoveredReplicaUnderRecoveryReplica recovery startsReplicaRecovery starts
ブロックの状態 (NameNode)UnderConstruction書き込み中のブロックUnderRecoveryリカバリ中のブロックファイルの有効期限が切れるとこの状態になるCommitted全てのバイトを転送し終わって、GSとファイルサイズをfinalized した状態まだ全DataNodeからのackを受け取っていないComplete書き込み完了
ブロックの状態遷移(通常時)initaddBlockAppend if last block is fullCompleteBlockBlock UnderConstructionclose / addBlockAppendclose / addBlockReceives a GS/Lenmatched finalizedreplicaCommittedBlock
ブロックの状態遷移(クライアントが死んだ場合)CompleteBlockBlock UnderConstructionReceives a GS/Lenmatched finalizedreplicaLease expires &block recovery startsBlock UnderRecoveryCommittedBlockRecovery succeeds
ブロックの状態遷移(NN再起動時)CompleteBlockBlock UnderConstructionLast blockof an unclosed fileinitrestReceives a GS/Lenmatched finalizedreplicaLease expires &block recovery startsBlock UnderRecoveryCommittedBlockRecovery succeeds
まとめAppendの目的一度finalizedしたデータに対して強い耐障害性Hflushしたデータに対して best effort な耐障害性Append のために新しいレプリカ、ブロックの状態を導入レプリカは5状態、ブロックは4状態で管理状態はメモリ上に保存される

More Related Content

PPTX
Hdfsソースコードリーディング第一回
PPT
Hadoopの紹介
PPTX
Hadoop gfarm使い方
PDF
分散処理のすゝめ?
PDF
Hadoopとその周辺の紹介
PDF
なぜApache HBaseを選ぶのか? #cwt2013
PPTX
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
PPTX
H2O 3.0
Hdfsソースコードリーディング第一回
Hadoopの紹介
Hadoop gfarm使い方
分散処理のすゝめ?
Hadoopとその周辺の紹介
なぜApache HBaseを選ぶのか? #cwt2013
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
H2O 3.0

What's hot (20)

PPTX
PPTX
H2O 3.0 with .net
PPTX
データベース入門
PPTX
Tuning maniax 2014 Hadoop編
PPTX
分散ファイルシステムGfarm上でのHadoop MapReduce
PPTX
Cache勉強会
PDF
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
PDF
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
PPTX
SASとHadoopとの連携
PDF
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
PDF
HBaseを用いたグラフDB「Hornet」の設計と運用
PDF
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
PDF
MapReduceプログラミング入門
PDF
Osc2012 spring HBase Report
PDF
オライリーセミナー Hive入門 #oreilly0724
PPT
遊休リソースを用いた 相同性検索処理の並列化とその評価
PDF
20120913 nosql@hikarie(okuyama fuse)
PDF
ただいまHadoop勉強中
PDF
Quick Introduction to GlusterFS
PPTX
Data replication and synchronization ガイダンス
H2O 3.0 with .net
データベース入門
Tuning maniax 2014 Hadoop編
分散ファイルシステムGfarm上でのHadoop MapReduce
Cache勉強会
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
SASとHadoopとの連携
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
HBaseを用いたグラフDB「Hornet」の設計と運用
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
MapReduceプログラミング入門
Osc2012 spring HBase Report
オライリーセミナー Hive入門 #oreilly0724
遊休リソースを用いた 相同性検索処理の並列化とその評価
20120913 nosql@hikarie(okuyama fuse)
ただいまHadoop勉強中
Quick Introduction to GlusterFS
Data replication and synchronization ガイダンス
Ad

Similar to Hdfsソースコードリーディング第2回 (20)

PDF
HDFS basics from API perspective
PDF
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
PPTX
Hadoop gfarm使い方
PDF
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
PDF
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)
PPT
はやわかりHadoop
PDF
VIOPS07: “Practical” Guide to GlusterFS
PDF
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
PDF
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
PDF
CDH4.1オーバービュー
PDF
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
PPTX
HAWQをCDHで動かしてみた
PDF
HDFS新機能総まとめin 2015 (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo 2015 講演資料)
PDF
JavaOne2013報告会 LT資料 Hadoopの話を聞いてきた
PPTX
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
PDF
HDFS HA セミナー #hadoop
PDF
Hadoop 基礎
PDF
Hadoopエコシステムのデータストア振り返り
PDF
Distributed data stores in Hadoop ecosystem
PDF
Hadoop Trends & Hadoop on EC2
HDFS basics from API perspective
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
Hadoop gfarm使い方
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)
はやわかりHadoop
VIOPS07: “Practical” Guide to GlusterFS
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
CDH4.1オーバービュー
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
HAWQをCDHで動かしてみた
HDFS新機能総まとめin 2015 (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo 2015 講演資料)
JavaOne2013報告会 LT資料 Hadoopの話を聞いてきた
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
HDFS HA セミナー #hadoop
Hadoop 基礎
Hadoopエコシステムのデータストア振り返り
Distributed data stores in Hadoop ecosystem
Hadoop Trends & Hadoop on EC2
Ad

Hdfsソースコードリーディング第2回