日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDFS分析(二)

發布時間:2024/6/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDFS分析(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

HDFS中簡單的分為:Client,DataNode,NameNode三大類,其中他們之間的通訊一共有這么幾種:

Client <=====>NameNode;Client <=====>DataNode;NameNode <======>DataNode;DataNode<=====>DataNode幾種,其中涉及到很多網絡通訊的封裝,也涉及到Hadoop的IPC機制。

? ?他們的通訊如下:

?

? ?主要類的類圖:

?

?HDFS的通訊方面的代碼寫的不是很優雅,相互依賴太多,只有一點點進行分析

?

總體

DFSClient與NameNode的通訊使用了Hadoop自身的ipc通訊機制,ipc機制使用了Hadoop自身的IO和序列化方式,沒有使用JDK自身的序列化方式
是因為JDK自身的序列化方式過于重量效率不高

?

NameNode和Datanode都是最頂層的接口VersionedProtocol,實現了該接口就表示這個類將使用Hadoop的RPC機制

?

Hadoop RPC結構分為Server,Client,以及協議接口和實現

?

RPC是對外的接口,主要提供了getServer()和getProxy()方法,getServer()為指定協議創建服務器端的實例,在指定的地址和端口上啟動服務

getProxy()創建了一個指定協議的服務器端實例的代理

?

Server端:
ipc.Server類代碼比較復雜,內部類比較多,Server處理網絡方面使用了NIO Reactor模式

ipc.Server.Listener:服務器端的監聽類,監聽來自客戶端的連接請求,以及為ipc.Server.Listener.Reader注冊讀事件,創建ipc.Server.Connection實例


ipc.Server.Listener.Reader:ipc.Server.Listener為Reader注冊了讀事件,Reader讀取客戶端過來的數據,當讀滿一個RPC的請求數據的時候處理這些數據生成一個ipc.Server.Call實例,這個實例放入server的BlockingQueue中。


ipc.Server.Handler:一直監聽著server的BlockingQueue,如果Reader把Call實例加入的話,Handler從隊列里面取出,使用JDK的反射執行相關的方法,
執行完后交有Responder設置Call的response,然后寫回給客戶端,Responder同步的寫回客戶端的一個Call的response,其他的Call的結果將有Responder異步寫回

基本的類圖和流程如下:

?

?

Client端:

先看相關的類圖:

Client:客戶端的實現類
Client.ConnectionId:到RPC服務端對象連接的標識
Client.Connection:到RPC服務端的連接,由Client.ConnectionId進行唯一標識,放在Client的鏈接池里面
Client.Call:存儲客戶端的調用參數,以及服務器端后續返回的參數
RPC.Invoker:對InvocationHandler的實現,提供invoke方法,截獲RPC客戶端對RPC服務端對象的調用


客戶端調用的大致流程是:

1.RPC類的getProxy()最終是調用JDK動態代理的方法創建一個VersionedProtocol或者其子接口的代理類,在此創建了InvocationHandler的實現RPC.Invoker的實例
2.在Invoker構造方法中創建Client.ConnectionId,以及根據SocketFactory獲得對應的Client實例
3.當客戶端調用一個服務器端的方法時,Invoker的invoke方法被調用,invoke方法執行client的call方法
4.Client的call方法中創建了Client.Call實例,獲得Client.Connection實例(從連接池中獲得或者新建一個,當是新建的一個Connection時,先和服務器端進行連接,
然后寫入rpcHeader和ConnectionHeader,從連接池中獲得的是不需要設置的),其他還有如Connection的回收這里不表
5.在第4步之后,在connection中寫入實際要調用的數據
6.Connection是個線程,在run方法中是同步等待服務器端的返回
7.call實例設置value,返回給調用者

?


最后給個client和server之間調用示意圖:

轉載于:https://www.cnblogs.com/nod0620/archive/2012/03/27/2417760.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的HDFS分析(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色播日韩 | 2020亚洲男人天堂 | 色婷五月天 | 国产毛片在线 | 黄色理论片 | 人人插人人干 | 国产三级三级三级 | 一本一道无码中文字幕精品热 | 欧美日韩一二三四 | 成人一区二 | 九九精品在线视频 | mm1313亚洲国产精品无码试看 | 你操综合 | 国产伦精品一区二区三区视频免费 | 一区二区免费在线 | 毛片一卡二卡 | 婷婷色站| www在线看片 | 我会温柔一点的日剧 | 探花国产| 国内av网| 欧美成人三级在线视频 | 亚洲伦理久久 | 国产午夜久久久 | 国产精品色婷婷99久久精品 | 久久国产精品电影 | 91在线高清 | 中文字幕――色哟哟 | 国产一级在线播放 | 超清纯大学生白嫩啪啪 | 日韩在线视频第一页 | 午夜影院在线观看免费 | 国产熟妇一区二区三区aⅴ网站 | 欧美偷拍一区二区 | 国产va亚洲va在线va | 少妇流白浆 | 伊人草| 国产三级一区二区三区 | 日韩免费看| 久婷婷 | 一本加勒比北条麻妃 | 偷拍老头老太高潮抽搐 | 色版视频在线观看 | 奴性女会所调教 | 亚洲国产精品久久 | 国产嫩草在线 | 91国产视频在线播放 | 精品视频在线一区 | 密臀av在线播放 | 全黄性高潮 | 麻豆国产av超爽剧情系列 | 在线免费观看国产精品 | 国产东北真实交换多p免视频 | 亚洲色图另类小说 | 国产精品久久久久久 | 男生坤坤放进女生坤坤里 | 91精品福利在线 | 亚洲欧美日韩精品 | 欧美特级一级片 | 日韩免费一区二区三区 | 337p日本欧洲亚洲大胆精筑 | 青青草社区 | 在线欧美亚洲 | 播放黄色一级片 | 一级特黄欧美 | 免费看av的网址 | 亚洲www在线 | 3d欧美精品动漫xxxx无尽 | 神马午夜888 | 欧美韩国日本在线 | 视频在线观看电影完整版高清免费 | 能在线观看的av | 日韩在线一 | 操人视频免费看 | 黄色高清视频 | 都市激情自拍偷拍 | 欧美亚洲一区二区在线观看 | 日本久久中文字幕 | 大地资源影视在线播放观看高清视频 | 波多野一区 | 99re9| 欧美一区二区最爽乱淫视频免费看 | 樱花影院最新免费观看攻略 | 国产精品老女人 | 日本网站在线免费观看 | 麻豆精品在线播放 | 亚洲综合国产精品 | 国产福利在线 | 日韩精品一区二区亚洲av观看 | 国产一区视频在线播放 | 亲嘴扒胸摸屁股激烈网站 | 国产原创视频在线观看 | 91精品黄色 | 国产精品综合久久久久久 | 91成人品| 国产一区二区视频在线播放 | 日韩在线一区二区三区 | 日韩簧片在线观看 | 男人与雌宠物交h |