- バイト形式で保存
- 断片にリニアファイル(ブロック):オフセットオフセット(バイト)
- ブロックは、クラスタ内のストレージノードに分散しました
- 一貫性のある単一のファイルサイズをブロックし、ファイルとファイルが矛盾することができます
- ブロックがコピーの数を設定することができ、コピーは無秩序異なるノードに分散します
- ノード数のコピーの数を超えないようにしてください
- ブロックファイルのアップロードには、コピー(プロセスを開くために十分なリソース)の大きさと数を設定することができます
- アップロードされたファイルのコピーのブロック番号が同じサイズに調整することができます(2.xの128メガバイト3つのブロック)
- 一度書くの多くを読んで、唯一の作家ということのみをサポート
- あなたは追加のデータを追加することができます
HDFSのアーキテクチャモデル
- ファイルのメタデータのメタデータ、ファイルデータ
- メタデータ
- データ自体
- 名前ノード(マスター)ノードを格納するファイルのメタデータ:単一ノードPOSIX
- ブロックファイルデータを保存するノード(から)データノード:マルチノード
- データノードと名前ノードは、ブロックリストを提出し、ハートビート残ります
- HdfsClient名前ノードは、メタデータ情報と対話します
- HdfsClientデータノードのデータファイルブロック(CS)との対話
- ローカルファイルシステムに保存されたデータノードを使用してサーバーのデータ・ブロック
HDFSアーキテクチャ図
HDFSの設計
- 均一に分散ストレージdfs.blocksize = 128M
- バックアップ冗長メモリdfs.replication = 3
名前ノード(NN)
- RAMベースのストレージ:ディスクが(双方向)を交換しません。
- これは、メモリ内にのみ存在します
- 持続性(片道)
- 名前ノードの主な機能:
- 読み取りとサービスクライアントを受け入れるために書きます
- ブロックリストの情報収集データノードの報告
- メタデータ情報が含まれて保存名前ノード
- Owershipとファイルのパーミッション
- ファイルサイズ、時間
- (ブロックリスト:ブロックオフセット)、位置情報(持続性が存在しません)
- (データノードによって報告された)各位置のブロックコピー
名前ノードの永続性
- 起動後のメタデータ情報の名前ノードには、メモリにロードされます
- ディスクファイルに格納されているメタデータは、「fsimage」(タイムバックアップのポイント)と呼ばれます
- ブロック位置情報はfsimageに保存されていません
- edits记录对metadata的操作日志…>Redis
- 二者的产生时间和过程?(format)
SecondaryNameNode(SNN)
- 它不是NN的备份(但可以做备份),它的主要工作是帮助NN合并edits log,减少NN启动时间。
- SNN执行合并时机
- 根据配置文件设置的时间间隔fs.checkpoint.period 默认3600秒
- 根据配置文件设置edits log大小 fs.checkpoint.size 规定edits文件的最大值默认是64MB
SNN合并流程图
DataNode(DN)
- 本地磁盘目录存储数据(Block),文件形式
- 同时存储Block的元数据信息文件
- 启动DN时会向NN汇报block信息
- 通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的block到其它DN
HDFS优点
- 高容错性
- 数据自动保存多个副本
- 副本丢失后,自动恢复
- 适合批处理
- 移动计算而非数据
- 数据位置暴露给计算框架(Block偏移量)
- 适合大数据处理
- GB 、TB 、甚至PB 级数据
- 百万规模以上的文件数量
- 10K+ 节点
- 可构建在廉价机器上
- 通过多副本提高可靠性
- 提供了容错和恢复 机制
HDFS缺点
- 低延迟数据访问
- 比如毫秒级
- 低延迟与高吞吐率
- 小文件存取
- 占用NameNode 大量内存
- 寻道时间超过读取时间
- 并发写入、文件随机修改
- 一个文件只能有一个写者
- 仅支持append
Block的副本放置策略
- 第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点。
- 第二个副本:放置在于第一个副本不同的 机架的节点上。
- 第三个副本:与第二个副本相同机架的节点。
- 更多副本:随机节点