1.1 HDFS生成された背景
すべてのデータを下回らないオペレーティングシステムに格納されるデータの量が増加すると、その後、より多くのディスク・オペレーティング・システムの管理に配信が、複数のマシンを管理するためのシステムのために、緊急の必要性を管理し、維持するために便利ではありません分散ファイルシステム管理でファイル。HDFSは一つだけでファイル管理システムを配布しました。
1.2 HDFSの定義
ディレクトリツリーでファイルを検索し、ファイルを保存するためのファイルシステムであるHDFS(Hadoopの分散ファイルシステム)、;第二に、それはその機能を実現するために一緒に働く多くのサーバで配布され、クラスタ内のサーバは、自分を持っています役割。
HDFSの使用シナリオ:書き込みのために適しているのは、一度、シーンの多くを読み、修正ファイルをサポートしていません。データ解析を行うための適切な、ネットワークアプリケーションに適しません。
2. HDFSの長所と短所
2.1利点:
1)高い耐障害性
(1)データの複数のコピーを自動的に、データ・パターンのコピーを増加させることにより、フォールトトレランス改善すること、保存され
(2)損失の後にデータのコピーを、それが自動的に復元することができます
(1)データのスケール:GB、TB、PBのも大きなデータレベルに達しスケールを処理することができます。
3)信頼性が改善される複数のコピーによって、安価なマシンで構築することができます。
2.2の欠点
1)データへの低レイテンシのアクセスに適していません。
小さな多数のファイルが保存されているため2)効率的にすることはできません。
小さなファイルの多くを保存する(1)、それはファイルを保存する名前ノードのディレクトリ情報を取得し、大量のメモリをブロックします。
(2)HDFSの設計目標に違反して、読み出し時間よりも長いを扱う小さなファイルを保存します。
3)ランダムに、同時書き込みをサポートするファイルを変更しません。
(1)ファイルは一つだけの書き込みを持つことができ、複数のスレッドが書き込みをすることはできません。
(2)のみ、データの追記(追加)をサポートするファイルのランダムな変更をサポートしていません
からなる3 HDFSアーキテクチャ
次のように3.1全体的な構造は次のようになります。
詳細3.2 HDFSアーキテクチャ
1)名前ノード(略称:ND):、それはHDFS情報の管理を担当する執行、マスターです。
(1)経営HDFSの名前空間。
(2)経営戦略のコピー。
(3)管理ブロック(ブロック)のマッピング情報。
(4)クライアント側読み取りおよび書き込み要求を処理します。
2)DataNode(简称:DN):就是slave,NameNode下达指令,DataNode执行实际的操作:
(1)存储实际的数据块;
(2)执行数据块的读/写操作。
3)Client:客户端,与NameNode交互的程序,职责或功能如下:
(1)文件切分:在上传文件至HDFS的时候,Client会将文件分切成一个个的Block上传;
(2)与NameNode交互,可以获取文件的位置信息(存在哪个节点上)
(3)Client可以通过一些命令来访问HDFS,比如增删改查操作;
(4)Client通过一些命令来管理HDFS,比如将NameNode格式化。
4)SecondaryNameNode:并非是NameNode的热备。当NameNode挂掉的时候,它并不会立即替换NameNode并提供服务。
(1)辅助NameNode,分担其工作量,比如定期合并FsImage和Edits(后边会讲到,这里不用理解),并将合并后的FsImage.checkPoint推送给NameNode;
(2)在紧急情况下可以辅助恢复NameNode。
4 HDFS的文件块大小
1)HDFS中的文件在物理上是按照块(Block)存储的,块id大小可以通过配置参数(dfs.blocksize)来规定,默认大小在Hadoop2.x的版本中是128M,老版本的是64M。
2)块的大小设定:文件的寻址时间应为块文件的传输时间的1%,这是比较合理的设定。
3)思考:为什么块的大小不能设置太小,也不能设置太大?
(1)HDFS的块如果设置的太小,会增加寻址时间,程序长时间在寻找块的存储位置;
(2)如果设置太大,从磁盘传输的时间会明显大于定位这个块的起始位置所需的时间。导致在处理这个块的数据时,浪费了大量的时间在IO上。
因此,块的大小可以根据数据量和磁盘的IO速度决定如何设置。