一直沒有重視三者之間的通信問題,在此整理一下提問:datanode之間有沒有交互?Hadoop安裝時ssh如何配置?
1.背景知識:
在Hadoop系統中,master/slaves/client的對應關系是:
master---namenode;
slaves---datanode;
client---dfsclient;
通信方式簡單地講:
client和namenode之間是通過rpc通信;
datanode和namenode之間是通過rpc通信;
client和datanode之間是通過簡單的socket通信。
再簡單一下:
client與NN,DN都有通信;NN與client,DN都有通信;DN只與NN有通信,datanode之間並沒有通信。
2.所以,ssh配置時,ssh公鑰只需要datanode和namenode之間交換。
3.合作關系:
以hdfs文件讀寫為例:
A.圖示:
B. NameNode可以看作是分布式文件系統中的管理者,主要負責管理文件系統的命名空間、集群配置信息和存儲塊的復制等。NameNode會將文件系統的Meta-data存儲在內存中,這些信息主要包括了文件信息、每一個文件對應的文件塊的信息和每一個文件塊在DataNode的信息等。
DataNode是文件存儲的基本單元,它將Block存儲在本地文件系統中,保存了Block的Meta-data,同時周期性地將所有存在的Block信息發送給NameNode。
Client就是需要獲取分布式文件系統文件的應用程序。
C.文件寫入
Client向NameNode發起文件寫入的請求。
NameNode根據文件大小和文件塊配置情況,返回給Client它所管理部分DataNode的信息。
Client將文件划分為多個Block,根據DataNode的地址信息,按順序寫入到每一個DataNode塊中。
D.文件讀取
Client向NameNode發起文件讀取的請求。
NameNode返回文件存儲的DataNode的信息。
Client讀取文件信息。
感謝您閱讀我的博客,由於作者水平有限,錯漏缺點在所難免,希望得到您的批評指正,祝您工作如意,學習順利!
############################################################
轉載請注明出處,謝謝!原文地址:http://www.cnblogs.com/masonwang/p/4526835.html
############################################################