国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

深入理解 Hadoop (一)網(wǎng)絡(luò)通信架構(gòu)與源碼淺析

這篇具有很好參考價(jià)值的文章主要介紹了深入理解 Hadoop (一)網(wǎng)絡(luò)通信架構(gòu)與源碼淺析。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

深入理解 Hadoop (一)網(wǎng)絡(luò)通信架構(gòu)與源碼淺析
深入理解 Hadoop (二)HDFS架構(gòu)演進(jìn)
深入理解 Hadoop (三)HDFS文件系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)
深入理解 Hadoop (四)HDFS源碼剖析
深入理解 Hadoop (五)YARN核心工作機(jī)制淺析
深入理解 Hadoop (六)YARN核心設(shè)計(jì)理念與工作流程剖析
深入理解 Hadoop (七)YARN資源管理和調(diào)度詳解

Hadoop RPC 網(wǎng)絡(luò)通信框架原理剖析

深入理解 Hadoop (一)網(wǎng)絡(luò)通信架構(gòu)與源碼淺析,大數(shù)據(jù),hadoop,架構(gòu),大數(shù)據(jù)YARN RPC 服務(wù)端的工作大致可以分為四個(gè)階段:
第一個(gè)階段: Server 初始化和啟動
在 Server 初始化的時(shí)候,會初始化 Listener 組件(內(nèi)部啟動了一個(gè) AcceptSelector 綁定了相應(yīng)的端口,用來處理客戶端的 OP_ACCEPT 事件),內(nèi)部還初始化了一組 Reader 線程,其實(shí)就是啟動了 ReaderSelector,用來處理 OP_READ 事件。還啟動一個(gè) Responder 線程用來處理響應(yīng)。
在 Server 調(diào)用 start() 方法啟動的時(shí)候,啟動 Listener 線程 和 Responder 線程。然后還初始化了一組 Handler 線程,專門用來處理存儲在 callQueue 的 RpcCall 請求。
第二個(gè)階段: 接收請求,封裝 RpcCall
代碼入口就是 Listener 的 run() 方法接收來自各個(gè)客戶端的 RPC 請求,并將他們封裝成 RpcCall 類放到一個(gè)共享隊(duì)列 callQueue 中。再詳細(xì)點(diǎn),該過程可以分為建立鏈接和接受請求兩個(gè)階段,分 別由 Listener 和 Reader 兩種線程完成。
具體來講,首先 Listener 接受客戶端的請求,然后通過輪詢的方式從 Reader 中獲取一個(gè)線程用來處理 OP_READ 事件讀取 RPC 請求數(shù)據(jù),如果對應(yīng)客戶端有數(shù)據(jù)寫過來,則該 Reader 負(fù)責(zé)讀取數(shù)據(jù),然后封裝成 RpcCall 加入到 callQueue 隊(duì)列中等待 Handler 來執(zhí)行下一步 處理。
第三個(gè)階段: 處理 RpcCall 請求
Handler 從 callQueue 中獲取 RpcCall 來執(zhí)行處理,并執(zhí)行對應(yīng)的 Rpc 函數(shù)調(diào)用,將得到的結(jié)果返回給客戶端。
第四個(gè)階段: 返回結(jié)果
在 Server 內(nèi)部只有一個(gè) Responder 線程。它內(nèi)部的 WriteSelector 負(fù)責(zé)監(jiān)聽 OP_WRITE 事件。如果 Responder 并不能一次性將結(jié)果寫出去,就注冊 OP_WRITE 事件分多次異步寫。

Hadoop RPC 源碼分析

RPC 客戶端源碼分析

客戶端請求三層調(diào)用關(guān)系

// 1、proxy.method()
// 2、invoker.invoke()
// 3、client.call()

Hadoop RPC 客戶端的工作機(jī)制

當(dāng)我們獲取一個(gè)某個(gè)通信協(xié)議的代理對象的時(shí)候,我們可以通過這個(gè)代理對象和 Server 進(jìn)行通信,請求 Server 端的服務(wù) 客戶端獲取的代理對象內(nèi)部,是構(gòu)建一個(gè) Invoker,也就是一個(gè) InvocationHandler,當(dāng)發(fā)送 RPC 請求的時(shí)候,實(shí)際上,就會回調(diào)了 Invoker.invoke() 方法 Invoker 的內(nèi)部封裝了 Client,當(dāng)我們真的通過代理對象調(diào)用某個(gè)方法的時(shí)候,實(shí)際上,底層是通過 Client.call() 發(fā)送一個(gè) RPC 請求給服務(wù)端,再獲取到結(jié)果 Call 方法的具體實(shí)現(xiàn),分為四步走:
第一步: 構(gòu)建 Call 對象
第二步: 構(gòu)建 Connection 鏈接對象,實(shí)際上內(nèi)部維護(hù)了一個(gè) Socket 客戶端
第三步: 通過 Connection 發(fā)送 RPC 請求到服務(wù)端,并且把獲取到的結(jié)果設(shè)置到 Call 對象的 rpcResponse 成員變量上
第四步: 從 Call 上獲取 RPC 執(zhí)行結(jié)果

RPC 服務(wù)端源碼分析

Key - Connection - Channel 一一對應(yīng), Connection 又會封裝在 Call 之中。調(diào)用過程如下如所示:
深入理解 Hadoop (一)網(wǎng)絡(luò)通信架構(gòu)與源碼淺析,大數(shù)據(jù),hadoop,架構(gòu),大數(shù)據(jù)

HDFS RPC 通信協(xié)議整理

深入理解 Hadoop (一)網(wǎng)絡(luò)通信架構(gòu)與源碼淺析,大數(shù)據(jù),hadoop,架構(gòu),大數(shù)據(jù)
ClientProtocol(Client -> NameNode) Client 和 NameNode 之間的通信協(xié)議,DFSClient 通過這個(gè)協(xié)議可以操縱HDFS的目錄命名空間、打開與關(guān)閉文件流,比如向 NameNode 發(fā)送 RPC 請求創(chuàng)建文件夾,刪除文件等等。
DatanodeProtocol(NameNode -> DataNode) NameNode 和 DataNode之間的通信協(xié)議,DataNode 通過此協(xié)議向 NameNode 注冊,心跳,塊匯報(bào)等。
ClientDatanodeProtocol(Client -> DataNode) Client 和 DataNode之間的通信協(xié)議,用來進(jìn)行塊恢復(fù)。
InterDatanodeProtocol(DataNode -> DataNode) DataNode 和 DataNode 之間的通信協(xié)議,該協(xié)議用于Datanode 進(jìn)程之間進(jìn)行通信。
NamenodeProtocol(NameNode -> SecondaryNameNode) NameNode 和 SecondaryNameNode 之間的通信協(xié)議,負(fù)責(zé)進(jìn)行 checkpoint 相關(guān)工作的交互。
DataTransferProtocol(DataNode -> DataNode) DataNode 和 DataNode 之間的通信協(xié)議,負(fù)責(zé)進(jìn)行 DataNode 相互之間的數(shù)據(jù)傳輸?shù)耐ㄐ艆f(xié)議。

YARN RPC 通信協(xié)議整理

深入理解 Hadoop (一)網(wǎng)絡(luò)通信架構(gòu)與源碼淺析,大數(shù)據(jù),hadoop,架構(gòu),大數(shù)據(jù)
ApplicationClientProtocol(Client -> RM) clients 與 RM 之間的協(xié)議, JobClient 通過該 RPC 協(xié)議提交應(yīng)用程序、 查詢應(yīng)用程序狀態(tài)等。
ResourceTracker(NM -> RM) NM 與 RM 之間的協(xié)議, NM 通過該 RPC 協(xié)議向 RM 注冊, 并定時(shí)發(fā)送心跳信息匯報(bào)當(dāng)前節(jié)點(diǎn)的資源使用情況和 Container 運(yùn)行情況。
ApplicationMasterProtocol(AM -> RM) AM 與 RM 之間的協(xié)議, AM 通過該 RPC 協(xié)議向 RM 注冊和撤銷自己, 并為各個(gè)任務(wù)申請資源。
ContainerManagementProtocol(AM -> NM) AM 與 NM 之間的協(xié)議, AM 通過該 RPC 要求 NM 啟動或者停止 Container, 獲取各個(gè) Container 的使用狀態(tài)等信息。
ResourceManagerAdministrationProtocol(RM Admin -> RM) Admin 與 RM 之間的通信協(xié)議, Admin 通過該 RPC 協(xié)議更新系統(tǒng)配置文件, 例如節(jié)點(diǎn)黑白名單等。
HAServiceProtocol(Active RM HA Framework Standby RM) Active RM 和 Standby RM 之間的通信協(xié)議,提供狀態(tài)監(jiān)控和 fail over 的 HA 服務(wù)。
TaskUmbilicalProtocol(YarnChild -> MRAppMaster) YarnChild 和 MRAppMaster 之間的通信協(xié)議,用于 MRAppMaster 監(jiān)控跟蹤 YarnChild 的運(yùn)行狀態(tài),YarnChild 向 MRAppMaster 拉取 Task 任務(wù)信息。
MRClientProtocol(JobClient -> ApplicationMaster) JobClient 和 ApplicationMaster 之間的通信協(xié)議。用于客戶端拉取 Application 的執(zhí)行狀態(tài),以及 Application 返回執(zhí)行結(jié)果給 客戶端。文章來源地址http://www.zghlxwxcb.cn/news/detail-778337.html

到了這里,關(guān)于深入理解 Hadoop (一)網(wǎng)絡(luò)通信架構(gòu)與源碼淺析的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 網(wǎng)絡(luò)編程——深入理解TCP/IP協(xié)議——OSI模型和TCP/IP模型:構(gòu)建網(wǎng)絡(luò)通信的基石

    網(wǎng)絡(luò)編程——深入理解TCP/IP協(xié)議——OSI模型和TCP/IP模型:構(gòu)建網(wǎng)絡(luò)通信的基石

    TCP/IP協(xié)議,即 傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議 ,是一組用于在計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)通信的協(xié)議。它由兩個(gè)主要的協(xié)議組成:TCP(傳輸控制協(xié)議)和IP(互聯(lián)網(wǎng)協(xié)議)。TCP負(fù)責(zé)確保數(shù)據(jù)的可靠傳輸,而IP則負(fù)責(zé)路由數(shù)據(jù)包以在網(wǎng)絡(luò)中傳遞。TCP/IP協(xié)議簇還包含其他輔助協(xié)議,如UDP(用戶數(shù)

    2024年02月14日
    瀏覽(32)
  • Docker網(wǎng)絡(luò)模型:理解容器網(wǎng)絡(luò)通信和連接

    Docker網(wǎng)絡(luò)模型:理解容器網(wǎng)絡(luò)通信和連接

    ???? 博主貓頭虎 帶您 Go to New World.??? ?? 博客首頁——貓頭虎的博客?? ??《面試題大全專欄》 文章圖文并茂??生動形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍專欄》學(xué)會IDEA常用操作,工作效率翻倍~?? ?? 《100天精通Golang(基礎(chǔ)入門篇)》學(xué)會Golang語言

    2024年02月14日
    瀏覽(32)
  • 【深入淺出C#】章節(jié) 8: 網(wǎng)絡(luò)編程和遠(yuǎn)程通信:網(wǎng)絡(luò)編程和遠(yuǎn)程通信

    計(jì)算機(jī)網(wǎng)絡(luò)是指連接多臺計(jì)算機(jī)設(shè)備,通過通信鏈路共享資源和信息的系統(tǒng)。它構(gòu)建了一個(gè)相互連接的世界,使得人們可以在不同地點(diǎn)進(jìn)行數(shù)據(jù)交換和資源共享。網(wǎng)絡(luò)編程是指在計(jì)算機(jī)網(wǎng)絡(luò)中,使用編程語言進(jìn)行通信和數(shù)據(jù)傳輸?shù)募夹g(shù)。現(xiàn)代應(yīng)用中,網(wǎng)絡(luò)編程發(fā)揮著重要作用

    2024年02月12日
    瀏覽(22)
  • 網(wǎng)絡(luò)通信深入解析:探索TCP/IP模型

    網(wǎng)絡(luò)通信深入解析:探索TCP/IP模型

    ? ? ? ? 你知道在我們的網(wǎng)頁瀏覽器的地址當(dāng)中輸入url,未必是如何呈現(xiàn)的嗎? ? ? ? ? web瀏覽器根據(jù)地址欄中指定的url,從web服務(wù)器獲取文件資源(resource)等信息,從而顯示出web頁面。web使用HTTP(超文本傳輸協(xié)議)的協(xié)議作為規(guī)范,完成從客戶端從服務(wù)器端等一系列的運(yùn)

    2024年02月07日
    瀏覽(25)
  • Linux 網(wǎng)絡(luò)通信epoll詳解( 10 ) -【Linux通信架構(gòu)系列 】

    Linux 網(wǎng)絡(luò)通信epoll詳解( 10 ) -【Linux通信架構(gòu)系列 】

    C++技能系列 Linux通信架構(gòu)系列 C++高性能優(yōu)化編程系列 深入理解軟件架構(gòu)設(shè)計(jì)系列 高級C++并發(fā)線程編程 期待你的關(guān)注哦?。?! 現(xiàn)在的一切都是為將來的夢想編織翅膀,讓夢想在現(xiàn)實(shí)中展翅高飛。 Now everything is for the future of dream weaving wings, let the dream fly in reality. (1)I/O多路復(fù)

    2024年02月16日
    瀏覽(40)
  • 【5G通信網(wǎng)絡(luò)架構(gòu)與5G基站架構(gòu)概述】

    【5G通信網(wǎng)絡(luò)架構(gòu)與5G基站架構(gòu)概述】

    首先,我們先來了解一下移動通信網(wǎng)絡(luò)的基本架構(gòu),即無線網(wǎng)-承載網(wǎng)-核心網(wǎng)的架構(gòu),2/3/4/5G網(wǎng)絡(luò)均是這樣的構(gòu)成,其中: 無線接入網(wǎng)(Radio Access Network) 是直接向用戶終端收發(fā)信號的地面可見基站所組成的網(wǎng)絡(luò),就是我們?nèi)粘Kf的基站。 承載網(wǎng) 是負(fù)責(zé)將基站接收到的用戶數(shù)

    2024年02月05日
    瀏覽(23)
  • 移動通信網(wǎng)絡(luò)架構(gòu) 1G-5G

    移動通信網(wǎng)絡(luò)架構(gòu) 1G-5G

    自20世紀(jì)80年代初第一代移動網(wǎng)絡(luò)(1G)問世以來,移動無線通信在過去幾十年里取得了許多進(jìn)展。移動通信標(biāo)準(zhǔn)的這種演變是全球?qū)Ω嘤脩艉瓦B接日益增長的需求的直接結(jié)果. 在本文中,我們將研究支撐這些移動技術(shù)的基礎(chǔ)設(shè)施和組件——從1G一直到即將到來的5G。在本文末尾

    2023年04月12日
    瀏覽(21)
  • 深入解析OSI七層協(xié)議:實(shí)現(xiàn)網(wǎng)絡(luò)通信的基石

    深入解析OSI七層協(xié)議:實(shí)現(xiàn)網(wǎng)絡(luò)通信的基石

    在計(jì)算機(jī)網(wǎng)絡(luò)中,OSI(開放系統(tǒng)互聯(lián))七層協(xié)議是一種常用的網(wǎng)絡(luò)通信模型,它將網(wǎng)絡(luò)通信過程劃分為七個(gè)不同的層級。每一層都有特定的功能和協(xié)議,共同構(gòu)成了網(wǎng)絡(luò)通信的基石。本文將詳細(xì)介紹每一層的協(xié)議以及其原理,并探討其在實(shí)際應(yīng)用中的場景。 物理層是OSI模型的

    2024年02月05日
    瀏覽(26)
  • 網(wǎng)絡(luò)協(xié)議的重要性與應(yīng)用:理解進(jìn)程間通信和網(wǎng)絡(luò)分層結(jié)構(gòu)(上)

    網(wǎng)絡(luò)協(xié)議的重要性與應(yīng)用:理解進(jìn)程間通信和網(wǎng)絡(luò)分層結(jié)構(gòu)(上)

    進(jìn)程間通信有多種方式,包括管道、消息隊(duì)列、共享內(nèi)存和信號等。然而,如果不同設(shè)備上的進(jìn)程需要進(jìn)行通信,就只能通過網(wǎng)絡(luò)來實(shí)現(xiàn)。由于設(shè)備的多樣性,為了兼容各種設(shè)備,就需要一個(gè)統(tǒng)一通用的網(wǎng)絡(luò)協(xié)議。 學(xué)習(xí)網(wǎng)絡(luò)協(xié)議的關(guān)鍵是了解其分層結(jié)構(gòu)。之前在計(jì)算機(jī)基礎(chǔ)專

    2024年02月08日
    瀏覽(22)
  • 【計(jì)網(wǎng)】TCP協(xié)議安全與風(fēng)險(xiǎn):深入探討網(wǎng)絡(luò)通信的基石

    【計(jì)網(wǎng)】TCP協(xié)議安全與風(fēng)險(xiǎn):深入探討網(wǎng)絡(luò)通信的基石

    ?? ?? 個(gè)人博客: 個(gè)人主頁 ?? 個(gè)人專欄: Linux ???? 功不唐捐,玉汝于成 目錄 ??前言 ??正文 TCP (Transmission Control Protocol): UDP (User Datagram Protocol): HTTP (Hypertext Transfer Protocol): HTTPS (Hypertext Transfer Protocol Secure): ??結(jié)語 ?我的其他博客 TCP(傳輸控制協(xié)議)是計(jì)算機(jī)網(wǎng)絡(luò)中最

    2024年03月10日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包