1つの HDFSは、データフローを書きます
1つの0.1 文書の解析書か
HDFSは、データフローを書き込むに示します。
1 )を介してクライアント分散ファイルシステムモジュールために名前ノードターゲットファイルが既に存在するかどうかを確認する名前ノードアップロードファイルを要求し、親ディレクトリが存在します。
2 )それはアップロードすることができる場合名前ノードを返します。
3 )クライアントは、最初に要求したブロックのいくつかにアップロードするデータノードのサーバー上に。
4 )名前ノードに戻る。3 番目のデータノードのノードを、それぞれ、 DN1、DN2、DN3。
5 )によって、クライアント DN1アップロードデータFSDataOutputStreamモジュールを要求するには、要求のDN1領収書はこの後、DN2コールDN3、DN2を呼び出していきます通信チャネルを確立します。
6 )ステップ応答クライアントによってDN1、DN2、DN3ステップ。
7)クライアントは、最初のブロックDN1アップロードし始めた(ディスクで開始するために)、ローカルメモリキャッシュにデータを読み出してパケット(Packet) 、ユニット DN1パケットが受信通過する DN2を、DN2はDN3を通過し、DN1 それぞれパスパケットは返事を待っている応答キューを配置します。
8)ブロックすると、転写後が完了すると、クライアントの要求を再び名前ノードブロック二アップロードサーバー。(繰り返し実行手順3-7)。
1つの.2 ネットワークトポロジー - ノードの距離計算
でHDFS データを書き込むプロセス、名前ノードができる選択アップロードする最新のデータからからデータノードは、データを受け取ります。さて、この最近からそれを計算する方法?
ノードの距離:最寄りの共通の祖先への2つのノード間距離の合計。
例如,假设有数据中心d1机架r1中的节点n1。该节点可以表示为/d1/r1/n1。利用这种标记,这里给出四种距离描述,如上图所示。
大家算一算每两个节点之间的距离,如下图所示。
1.3 机架感知(副本存储节点选择)
1. 官方ip地址
For the common case, when the replication factor is three, HDFS’s placement policy is to put one replica on one node in the local rack, another on a different node in the local rack, and the last on a different node in a different rack.
2. Hadoop2.7.2副本节点选择
4.2 HDFS读数据流程
HDFS的读数据流程,如图所示。
1)客户端通过Distributed FileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。
2)挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。
3)DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。
4)客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。