HadoopのHDFSの(HDFSデータストリームはデータを読み書き)(インタビュー開発フォーカス)

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地址

 

  机架感知说明  http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#Data_Replication

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 FileSystemNameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。

2)挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据

3DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。

4)客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。

おすすめ

転載: www.cnblogs.com/Diyo/p/11355698.html