主頁 > 資料庫 > 2、Hdfs架構設計與原理分析

2、Hdfs架構設計與原理分析

2020-09-15 00:46:37 資料庫

 

 

文章目錄

  • 1.Hadoop架構
  • 2.HDFS體系架構
    • 2.1NameNode
      • 2.1.1元資料資訊
      • 2.1.2NameNode檔案操作
      • 2.1.3NameNode副本
      • 2.1.4NameNode心跳機制
      • 2.1.5NameNode容錯機制
      • 2.1.6NameNode物理結構
      • 2.1.7NameNode檔案結構
    • 2.2DataNode
      • 2.2.1DataNode作業機制
      • 2.2.2DataNode讀寫操作
    • 2.3SecondaryNameNode
      • 2.3.1SecondaryNameNode日志與鏡像合并步驟
  • 3.HDFS機制
    • 3.1心跳機制
    • 3.2負載均衡
  • 4.HDFS讀寫流程
    • 4.1資料讀流程
    • 4.2資料寫流程

 

1.Hadoop架構

Hadoop由三個模塊組成:分布式存盤HDFS、分布式計算MapReduce、資源調度引擎Yarn

2.HDFS體系架構

2.1NameNode

    NameNode負責:檔案元資料資訊的操作以及處理客戶端的請求
   NameNode管理:HDFS檔案系統的命名空間NameSpace,
   NameNode維護:檔案系統樹(FileSystem)以及檔案樹中所有的檔案和檔案夾的元資料資訊(matedata)維護檔案到塊的對應關系和塊到節點的對應關系
   NameNode檔案:namespace鏡像檔案(fsimage),操作日志檔案(edit log)這些資訊被Cache在RAM中,當然這兩個檔案也會被持久化存盤在本地硬碟,
   NameNode記錄:每個檔案中各個塊所在的資料節點的位置資訊,但它并不永久保存塊的位置資訊,因為這些資訊在系統啟動時由資料節點重建,從資料節點重建:在nameNode啟動時,DataNode向NameNode進行注冊時發送給NameNode

2.1.1元資料資訊

   檔案名,檔案目錄結構,檔案屬性(生成時間,副本數,權限)每個檔案的塊串列,以及串列中的塊與塊所在的DataNode之間的地址映射關系 在記憶體中加載檔案系統中每個檔案和每個資料塊的參考關系(檔案、block、datanode之間的映射資訊) 資料會定期保存到本地磁盤,但不保存block的位置資訊而是由DataNode注冊時上報和在運行時維護

2.1.2NameNode檔案操作

    NameNode負責檔案元資料的操作 ,DataNode負責處理檔案內容的讀寫請求,資料流不經過NameNode,會詢問它跟那個DataNode聯系

2.1.3NameNode副本

    檔案資料塊到底存放到哪些DataNode上,是由NameNode決定的,NN根據全域情況做出放置副本的決定讀取檔案的時候,NN盡量讓client讀取離它最近的datanode上的副本,降低帶寬消耗和讀取時延

2.1.4NameNode心跳機制

         全權管理資料塊的復制,周期性的接受心跳和塊的狀態報告資訊(包含該DataNode上所有資料塊的串列)
        若接受到心跳資訊,NN認為DN作業正常,如果在10分鐘后還接受到不到DN的心跳,那么NN認為DN已經宕機 這時候NN準備要把DN上的資料塊進行重新的復制, 塊的狀態報告包含了一個DN上所有資料塊的串列,blocks report 每個1小時發送一次

2.1.5NameNode容錯機制

     沒有Namenode,HDFS就不能作業,事實上,如果運行namenode的機器壞掉的話,系統中的檔案將會完全丟失,因為沒有其他方法能夠將位于不同datanode上的檔案塊(blocks)重建檔案,因此,namenode的容錯機制非常重要,Hadoop提供了兩種機制,
    第一種方式是將持久化存盤在本地硬碟的檔案系統元資料備份,Hadoop可以通過配置來讓Namenode將他的持久化狀態檔案寫到不同的檔案系統中,這種寫操作是同步并且是原子化的,比較常見的配置是在將持久化狀態寫到本地硬碟的同時,也寫入到一個遠程掛載的網路檔案系統(NFS),
    第二種方式是運行一個輔助的Namenode(SecondaryNamenode), 事實上SecondaryNamenode并不能被用作Namenode它的主要作用是定期的將Namespace鏡像與操作日志檔案(edit log)合并,以防止操作日志檔案(edit log)變得過大,通常,SecondaryNamenode 運行在一個單獨的物理機上,因為合并操作需要占用大量的CPU時間以及和Namenode相當的記憶體,輔助Namenode保存著合并后的Namespace鏡像的一個備份,萬一哪天Namenode宕機了,這個備份就可以用上了,
    但是輔助Namenode總是落后于主Namenode,所以在Namenode宕機時,資料丟失是不可避免的,在這種情況下,一般的,要結合第一種方式中提到的遠程掛載的網路檔案系統(NFS)中的Namenode的元資料檔案來使用,把NFS中的Namenode元資料檔案,拷貝到輔助Namenode,并把輔助Namenode作為主Namenode來運行,

2.1.6NameNode物理結構

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

2.1.7NameNode檔案結構

在這里插入圖片描述
NameNode的存盤目錄
在這里插入圖片描述

2.2DataNode

     一個集群可能包含上千個DataNode節點,這些DataNode定時和NameNode進行通信,接受NameNode的指令 為了減輕NameNode的負擔,NameNode上并不永久保存哪個DataNode上有哪些資料塊的資訊,而是通過DataNode啟動時的上報來更新NameNode上的映射表,
    根據客戶端或者是namenode的調度存盤和檢索資料,并且定期向namenode發送所存盤的塊(block)的串列,資料塊在DataNode行程所在的節點上以檔案的形式存盤在本地磁盤上 ,一個是資料本身 ,一個是元資料(資料塊的長度,塊資料的校驗和,以及時間戳),維護blockid與DataNode之間的映射資訊(元資訊)

2.2.1DataNode作業機制

    datanode啟動時,每個datanode對本地磁盤進行掃描,將本datanode上保存的block資訊匯報給namenode namenode在接收到的block資訊以及該block所在的datanode資訊等保存在記憶體中,
DataNode啟動后向NameNode注冊,通過后周期性(1小時)的向NameNode上報所有的塊資訊.
    (1)通過向NameNode發送心跳保持與其聯系(3秒一次),心跳回傳結果帶有NN的命令 ,回傳的命令為:如塊的復制,洗掉某個資料塊……
    (2)如果10分鐘沒有收到DataNode的心跳,則認為其已經lost,并copy其上的block到其它DataNode
    (3)DN在其檔案創建后三周進行驗證其checkSum的值是否和檔案創建時的checkSum值一致

2.2.2DataNode讀寫操作

    集群中的每個服務器都運行一個DataNode后臺程式,這個后臺程式負責把HDFS資料塊讀寫到本地的檔案系統, 當需要通過客戶端讀/寫某個資料時,先由NameNode告訴客戶端去哪個DataNode進行具體的讀/寫操作 然后,客戶端直接與這個DataNode服務器上的后臺程式進行通信,并且對相關的資料塊進行讀/寫操作,

2.3SecondaryNameNode

    SecondaryNameNode是HDFS架構中的一個組成部分,但是經常由于名字而被人誤解它真正的用途,其實它真正的用途,是用來保存namenode中對HDFS metadata的資訊的備份,并減少namenode重啟的時間,對于hadoop行程中,要配置好并正確的使用snn,還是需要做一些作業的,hadoop的默認配置中讓snn行程默認運行在了namenode的那臺機器上,但是這樣的話,如果這臺機器出錯,宕機,對恢復HDFS檔案系統是很大的災難,更好的方式是:將snn的行程配置在另外一臺機器上運行,
    在hadoop中,namenode負責對HDFS的metadata的持久化存盤,并且處理來自客戶端的對HDFS的各種操作的互動反饋,為了保證互動速度,HDFS檔案系統的metadata是被load到namenode機器的記憶體中的,并且會將記憶體中的這些資料保存到磁盤進行持久化存盤,為了保證這個持久化程序不會成為HDFS操作的瓶頸,hadoop采取的方式是:沒有對任何一次的當前檔案系統的snapshot進行持久化,對HDFS最近一段時間的操作list會被保存到namenode中的一個叫Editlog的檔案中去,當重啟namenode時,除了load fslmage意外,還會對這個Editlog檔案中記錄的HDFS操作進行replay,以恢復HDFS重啟之前的最終狀態,
    而SecondaryNameNode,會周期性的將Editlog中記錄的對HDFS的操作合并到一個checkpoint中,然后清空Editlog,所以namenode的重啟就會Load最新的一個checkpoint,并重現Editlog中記錄的hdfs操作,由于Editlog中記錄的是從上一次checkpoint以后到現在的操作串列,所以就會比較小,如果沒有SecondaryNameNode的這個周期性的合并程序,那么當每次重啟namenode的時候,就會花費很長的時間,而這樣周期性的合并就能減少重啟的時間,同時也能保證HDFS系統的完整性,
    這就是SecondaryNameNode所做的事情,所以snn并不能分擔namenode上對HDFS互動性操作的壓力,盡管如此,當namenode機器宕機或者namenode行程出問題時,namenode的daemon行程可以通過人工的方式從snn上拷貝一份metadata來恢復HDFS檔案系統,
至于為什么要將snn行程運行在一臺非NameNode的機器上,這主要出于兩點考慮:
    1、可擴展性:創建一個新的HDFS的snapshot(快照)需要將namenode中load到記憶體的metadata資訊全部拷貝一遍,這樣的操作需要的記憶體和namenode占用的記憶體一樣,由于分配給namenode行程的記憶體其實是對HDFS檔案系統的限制,如果分布式檔案系統非常的大,那么namenode那臺機器的記憶體就可能會被namenode行程全部占據,
    2、容錯性:當snn創建一個checkpoint的時候,它會將checkpoint拷貝成metadata的幾個拷貝,將這個操作運行到另外一臺機器,還可以提供分布式檔案系統的容錯性,
SECONDARYNAMENODE作業原理

2.3.1SecondaryNameNode日志與鏡像合并步驟

日志與鏡像的定期合并總共分五步:
    1、SecondaryNameNode通知NameNode準備提交edits檔案,此時主節點產生edits.new
    2、SecondaryNameNode通過http get方式獲取NameNode的fsimage與edits檔案(在SecondaryNameNode的current同級目錄下可見到 temp.check-point或者previous-checkpoint目錄,這些目錄中存盤著從namenode拷貝來的鏡像檔案)
    3、SecondaryNameNode開始合并獲取的上述兩個檔案,產生一個新的fsimage檔案fsimage.ckpt
    4、SecondaryNameNode用http post方式發送fsimage.ckpt至NameNode
    5、NameNode將fsimage.ckpt與edits.new檔案分別重命名為fsimage與edits,然后更新fstime,整個checkpoint程序到此結束, 在新版本的hadoop中(hadoop0.21.0),SecondaryNameNode兩個作用被兩個節點替換, checkpoint node與backup node. SecondaryNameNode備份由三個引數控制fs.checkpoint.period控制周期,fs.checkpoint.size控制日志檔案超過多少大小時合并, dfs.http.address表示http地址,這個引數在SecondaryNameNode為單獨節點時需要設定,
在這里插入圖片描述

3.HDFS機制

3.1心跳機制

       作業原理:

  1. master啟動的時候,會開一個ipc server在那里,
  2. slave啟動,連接master,每隔3秒鐘向master發送一個“心跳”,攜帶狀態資訊;
  3. master通過這個心跳的回傳值,向slave節點傳達指令
    作用:
  4. Namenode全權管理資料塊的復制,它周期性地從集群中的每個Datanode接收心跳信號和塊狀態報告
    (Blockreport),接收到心跳信號意味著該Datanode節點作業正常,塊狀態報告包含了一個該 Datanode上所
    有資料塊的串列
  5. DataNode啟動后向NameNode注冊,通過后,周期性(1小時)的向 NameNode上報所有的塊的串列;
    每3秒向NamNode發一次心跳,回傳NameNode給該DataNode的命令;如復制塊資料到另一臺機器,或刪
    除某個資料塊,如果NameNode超過10分鐘沒有收 到某個DataNode 的心跳,則認為該節點不可用,
  6. hadoop集群剛開始啟動時,會進入安全模式(99.9%),就用到了心跳機制

3.2負載均衡

    Hadoop的HDFS集群非常容易出現機器與機器之間磁盤利用率不平衡的情況,例如:當集群內新增、洗掉節點,或者某個節點機器內硬碟存盤達到飽和值,當資料不平衡時,Map任務可能會分配到沒有存盤資料的機器,這將導致網路帶寬的消耗,也無法很好的進行本地計算,
當HDFS負載不均衡時,需要對HDFS進行資料的負載均衡調整,即對各節點機器上資料的存盤分布進行調整,從而,讓資料均勻的分布在各個DataNode上,均衡IO性能,防止熱點的發生,進行資料的負載均衡調整,必須要滿足如下原則:
c(1)資料平衡不能導致資料塊減少,資料塊備份丟失
    (2)管理員可以中止資料平衡行程
    (3)每次移動的資料量以及占用的網路資源,必須是可控的
    (4)資料均衡程序,不能影響namenode的正常作業
負載均衡原理如下:
在這里插入圖片描述
步驟分析如下:
    (1)資料均衡服務(Rebalancing Server)首先要求 NameNode 生成 DataNode 資料分布分析報告,獲取每個DataNode磁盤使用情況
    (2)Rebalancing Server匯總需要移動的資料分布情況,計算具體資料塊遷移路線圖,資料塊遷移路線圖,確保網路內最短路徑
    (3)開始資料塊遷移任務,Proxy Source Data Node復制一塊需要移動資料塊
    (4)將復制的資料塊復制到目標DataNode上
    (5)洗掉原始資料塊
    (6)目標DataNode向Proxy Source Data Node確認該資料塊遷移完成
    (7)Proxy Source Data Node向Rebalancing Server確認本次資料塊遷移完成,然后繼續執行這個程序,直至集群達到資料均衡標準

4.HDFS讀寫流程

    在了解讀寫程序之前先了了解基本的概念:
    在DFSClient寫HDFS的程序中,有三個需要搞清楚的單位:block、packet與chunk;
    block是最大的一個單位,它是最終存盤于DataNode上的資料粒度,由dfs.block.size引數決定,默認是64M;注:這個引數由客戶端配置決定;
    packet是中等的一個單位,它是資料由DFSClient流向DataNode的粒度,以dfs.write.packet.size引數為參考值,默認是64K;注:這個引數為參考值,是指真正在進行資料傳輸時,會以它為基準進行調整,調整的原因是一個packet有特定的結構,調整的目標是這個packet的大小剛好包含結構中的所有成員,同時也保證寫到DataNode后當前block的大小不超過設定值;
    chunk是最小的一個單位,它是DFSClient到DataNode資料傳輸中進行資料校驗的粒度,由io.bytes.per.checksum引數決定,默認是512B;
    注:事實上一個chunk還包含4B的校驗值,因而chunk寫入packet時是516B;資料與檢驗值的比值為128:1,所以對于一個128M的block會有一個1M的校驗檔案與之對應;

4.1資料讀流程

在這里插入圖片描述
    1、客戶端呼叫FileSystem 實體的open 方法,獲得這個檔案對應的輸入流InputStream,
    2、通過RPC 遠程呼叫NameNode ,獲得NameNode 中此檔案對應的資料塊保存位置,包括這個檔案的副本的保存位置( 主要是各DataNode的地址) ,
    3、獲得輸入流之后,客戶端呼叫read 方法讀取資料,選擇最近的DataNode 建立連接并讀取資料,
    4、如果客戶端和其中一個DataNode 位于同一機器(比如MapReduce 程序中的mapper 和reducer),那么就會直接從本地讀取資料,
    5、到達資料塊末端,關閉與這個DataNode 的連接,然后重新查找下一個資料塊,
    6、不斷執行第2 - 5 步直到資料全部讀完,
    7、客戶端呼叫close ,關閉輸入流DF S InputStream,
    在讀的程序中如何保證資料的完整性:
    通過校驗和,因為每個chunk中都有一個校驗位,一個個chunk構成packet,一個個packet最終形成block,故可在block上求校驗和,HDFS 的client端即實作了對 HDFS 檔案內容的校驗和 (checksum) 檢查,當客戶端創建一個新的HDFS檔案時候,分塊后會計算這個檔案每個資料塊的校驗和,此校驗和會以一個隱藏檔案形式保存在同一個 HDFS 命名空間下,當client端從HDFS中讀取檔案內容后,它會檢查分塊時候計算出的校驗和(隱藏檔案里)和讀取到的檔案塊中校驗和是否匹配,如果不匹配,客戶端可以選擇從其他 Datanode 獲取該資料塊的副本,

4.2資料寫流程

在這里插入圖片描述
在這里插入圖片描述
    1、使用 HDFS 提供的客戶端 Client,向遠程的 namenode 發起 RPC 請求
    2、namenode 會檢查要創建的檔案是否已經存在,創建者是否有權限進行操作,成功則會 為檔案創建一個記錄,否則會讓客戶端拋出例外;
    3、當客戶端開始寫入檔案的時候,客戶端會將檔案切分成多個 packets,并在內部以資料佇列“data queue(資料佇列)”的形式管理這些 packets,并向 namenode 申請 blocks,獲 取用來存盤 replicas 的合適的 datanode 串列,串列的大小根據 namenode 中 replication 的設定而定;
    4、開始以 pipeline(管道)的形式將 packet 寫入所有的 replicas 中,客戶端把 packet 以流的 方式寫入第一個 datanode,該 datanode 把該 packet 存盤之后,再將其傳遞給在此 pipeline 中的下一個 datanode,直到最后一個 datanode,這種寫資料的方式呈流水線的形式,
    5、最后一個 datanode 成功存盤之后會回傳一個 ack packet(確認佇列),在 pipeline 里傳遞 至客戶端,在客戶端的開發庫內部維護著"ack queue",成功收到 datanode 回傳的 ack packet 后會從"data queue"移除相應的 packet,
    6、如果傳輸程序中,有某個 datanode 出現了故障,那么當前的 pipeline 會被關閉,出現故 障的 datanode 會從當前的 pipeline 中移除,剩余的 block 會繼續剩下的 datanode 中繼續 以 pipeline 的形式傳輸,同時 namenode 會分配一個新的 datanode,保持 replicas 設定的 數量,
    7、客戶端完成資料的寫入后,會對資料流呼叫 close()方法,關閉資料流;
    8、只要寫入了 dfs.replication.min(最小寫入成功的副本數)的復本數(默認為 1),寫操作 就會成功,并且這個塊可以在集群中異步復制,直到達到其目標復本數(dfs.replication 的默認值為 3),因為 namenode 已經知道檔案由哪些塊組成,所以它在回傳成功前只需 要等待資料塊進行最小量的復制,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/39997.html

標籤:大數據

上一篇:R語言學習-基礎篇1

下一篇:PB ASA資料庫不能保存

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more