YARN,ZOOKEERPER--學習筆記

1,YARN組件

1.1YARN簡介

YARN表示分布式資源調度,簡單地說,就是:以分布式技術完成資源的合理分配,讓MapReduce能高效完成計算任務。
YARN是Hadoop核心組件之一,用于提供分布式資源調度服務。
而在Hadoop 1.x時,這個過程主要是通過MapReduce中的TaskTracker、JobTracker通信來完成。

這種架構方案主要缺點是:
1)服務器集群資源調度管理和MapReduce執行過程耦合在一起;
2)如果想在當前集群中運行其他計算任務,比如Spark、Storm,則無法統一使用集群中的資源。

在早期Hadoop時,大數據技術就只有Hadoop一家,這個缺點并不明顯。
但隨著大數據技術的發展,各種新的計算框架不斷出現,我們不可能為每一種計算框架部署一個服務器集群,而且就算能部署新集群,數據還是在原來集群的HDFS上,這嚴重阻礙了大數據技術的發展。
由此,在Hadoop 2.x引來了最主要變化:將Yarn從MapReduce中分離出來,成為一個獨立的資源調度框架。
可別小瞧了這個做法,單獨分離出YARN帶來的優勢尤其明顯:

1)解耦了MapReduce框架,專注于計算;
(2)分工更加明確、精細化;[專業的事由專業的人去做]3)正因為有了分離YARN,后期誕生了一個個優秀的專注于計算引擎的大數據框架,比如Spark、Flink等。

Yarn是"Yet Another Resource Negotiator"的縮寫,字面意思就是:另一種資源調度器。主要區別于當時已有的另一些資源調度器產品,比如Mesos等。通常情況下,YARN是與MapReduce交互配合使用,并給MapReduce合理分配資
源。
比如,MapReduce程序向YARN申請資源,YARN合理分配資源。
當成功分配好資源后,MapReduce即可完成計算任務,而空閑資源也可供其它程序使用。
Hadoop架構有三大核心組件,分別是:HDFS、MapReduce、YARN。

1.2YARN架構組成

在了解YARN架構之前,先來了解一下三個名詞:
(1)資源
服務器硬件資源,如CPU、內存、硬盤、網絡等
(2)資源調度
管控硬件資源,提升服務器的利用率
(3)分布式資源調度
管控整個分布式服務器集群的全部資源,并整合進行統一調度
YARN架構是由四個模塊組成,分別是:
a)ResourceManager(資源管理器):用于接收用戶的計算請求任務,并負責集群
的資源分配;
b)NodeManager(節點管理器):單個服務器的資源調度者,負責調度單個服務
器資源并提供給程序使用;
c)ApplicationMaster(任務管理器):單個任務運行的管理者;
d)Client Application:客戶端提交的應用程序。
會發現,ResourceManager與NodeManager是Yarn資源調度的核心模塊。
YARN分布式資源調度,也遵循中心化模式(主從模式),有兩個核心角色:

1)主(Master)角色:ResourceManager
(2)從(Slave) 角色:NodeManager 

1.3YARN提交MR的流程

了解YARN的基本執行流程?

1)我們向Yarn提交應用程序,包括ApplicationMaster、我們的MapReduce程序,以及MapReduce程序啟動命令;
2)ResourceManager進程和NodeManager進程通信,根據集群資源,為用戶程序分配第一個容器,并將ApplicationMaster分發到這個容器上面,并在容器里面啟ApplicationMaster;
3)ApplicationMaster啟動后,立即向ResourceManager進程注冊,并為自己的應用程序申請容器資源;
4)ApplicationMaster申請到需要的容器后,立即和相應的NodeManager進程通信,將用戶MapReduce程序分發到NodeManager進程所在服務器,并在容器中運行,運行的就是Map或者Reduce任務;
5)Map或者Reduce任務在運行時,和ApplicationMaster通信,匯報自己的運行狀態。
如果運行結束,ApplicationMaster向ResourceManager進程注銷并釋放所有的容器資源。到這里,MapReduce程序已執行完成!

1.4 YARN的三大調度器

1,先進先出調度器
FIFO Scheduler表示先進先出調度器。
先進先出調度器指的是:把應用按提交的順序排成一個隊列,在進行資源分配時,先給隊列中【隊頭】的應用進行分配資源,待【隊頭】的應用需求滿足后,再給下一個
應用分配,以此類推。

1)優點
能夠保證每一個任務都能拿到充足的資源, 對于大任務的運行非常有好處。
(2)缺點
如果先有大任務后有小任務, 會導致后續小任務無資源可用, 長期處于等待狀態。

一般地,在普通數據量提交計算時,幾乎不會涉及調度器的設定,但海量數據處理時,要多考慮下調度器的設定。
2,公平調度器
Fair Scheduler表示公平調度器。
Fair Scheduler不需要保留集群的資源,因為它會動態在所有正在運行的作業之間平衡資源。
Fair Scheduler 當一個大job提交時,只有這一個job在運行,此時它獲得了所有集群資源;當后面有小任務提交后,公平調度器會分配一半資源給這個小任務,讓這兩個
任務公平的共享集群資源。通常情況下,各分享50%資源!
公平調度器執行效果:
(1)優點
能夠保證每個任務都有資源可用, 不會有大量的任務等待在資源分配中。
(2)缺點
如果大任務非常的多, 就會導致每個任務獲取資源都非常的有限, 也會導致執行時間會拉長。
相比較而言,公平調度器相對來說,分配資源時較為公平公正。
3,容量調度器
Capacity Scheduler表示容量調度器。
Capacity Scheduler為每個組織分配專門的隊列和一定的集群資源,這樣整個集群就可以通過設置多個隊列的方式給多個組織提供服務了。
在每個隊列內部,資源的調度是采用的是先進先出(FIFO)策略。

1)優點
可以保證多個任務都可以使用一定的資源, 提升資源的利用率。
(2)缺點
如果遇到非常大的任務, 此任務不管運行在哪個隊列中, 都無法使用到集群中所有的資源, 導致大任務執行效率比較低, 當任務比較繁忙時, 依然會出現等待狀態。

(1)調度器的使用,是通過/export/server/hadoop-3.3.0/etc/hadoop/yarnsite.xml配置文件中的。

yarn.resourcemanager.scheduler.class參數進行配置的,默認采用
Capacity Scheduler調度器。
1)在這個配置中,在root隊列下面定義了兩個子隊列prod和dev,分別占40%60%的容量;
(2)prod由于沒有設置maximum-capacity屬性,它有可能會占用集群全部資源;
(3)dev的maximum-capacity屬性被設置成了75%,所以即使prod隊列完全空閑
dev也不會占用全部集群資源,也就是說,prod隊列仍有25%的可用資源用來應急。

2, ZooKeeper概述

2.1ZooKeeper簡介

Zookeeper(動物管理員)是一個分布式協調服務的開源框架,簡要地說,就是管理大數據生態圈的各類"動物"。
ZooKeeper本質上是一個分布式的小文件存儲系統。
采用樹形層次結構,ZooKeeper樹中的每個節點被稱為Znode,且樹中的每個節點可以擁有子節點。
Zookeeper具有如下特性:

1)全局數據一致:集群中每個服務器保存一份相同的數據副本,Client客戶端無論連接哪個服務器,展示的數據都是一致的;[最重要]
2)可靠性:如果消息被其中一臺服務器接收,那么將被所有的服務器接受;
3)順序性:包括全局有序和偏序兩種。
全局有序是指如果在一臺服務器上消息a在消息b前發布,則在所有Server上消息a都將在消息b前被發布;
偏序是指如果一個消息b在消息a后被同一個發送者發布,a必將排在b前面。
4)數據更新原子性:一次數據更新要么成功(半數以上節點成功),要么失敗,不存在中間狀態;
5)實時性:Zookeeper保證客戶端將在一個時間間隔范圍內獲得服務器的更新信息,或者服務器失效的信息。

2.2集群角色

Zookeeper表示分布式協調服務。
使用Zookeeper時至少需要兩個Hadoop服務,一主一備,主服務對外提供業務功能,備用等待主服務不可用時,啟用備用服務器對外提供業務功能。
在Zookeeper中,可供服務的角色有三類,分別是:

1)leader:管理者,負責管理follower,處理所有的事務請求(數據的保存,修改,刪除);
(2)follower:追隨者,負責選舉(選舉leader)和數據的同步及獲取;
(3)observer:觀察者,負責數據的同步及獲取(需要在配置文件中指定才能生效)

(1)leader管理者

leader管理者是Zookeeper集群工作的核心。負責管理follower,處理所有的事務請求(包括數據的保存,修改,刪除)。

(2)follower追隨者

follower追隨者負責處理客戶端非事務(讀操作)請求,并轉發事務請求給leader管理者。
同時,follower還會參與集群Leader選舉投票。

(3)observer觀察者
而針對訪問量比較大的Zookeeper集群,還可新增observer觀察者角色

負責數據的同步及獲取(需要在配置文件中指定才能生效)。

Zookeeper的集群常見角色有三個,分別是:leader、follower、observer。

2.3 ZooKeeper服務

1,配置環境變量
(1)未配置環境變量 按Shell腳本方式完成執行。此時,需要依次執行命令:
leader管理者是Zookeeper集群工作的核心。負責管理follower,處理所有的事務
請求(包括數據的保存,修改,刪除)。
follower追隨者負責處理客戶端非事務(讀操作)請求,并轉發事務請求給leader管理者。
同時,follower還會參與集群Leader選舉投票。
負責數據的同步及獲取(需要在配置文件中指定才能生效)。
(1)未配置環境變量
按Shell腳本方式完成執行
(2)先配置環境變量,再直接執行
cd /export/server/zookeeper/bin 1./zkServer.sh status 1
(2)先配置環境變量,再直接執行
此時,需要來配置zookeeper環境變量,注意:三臺虛擬機都要進行配置。

echo 'export ZOOKEEPER_HOME=/export/server/zookeeper' >>
/etc/profile
echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile
source /etc/profile

此時,可以在虛擬機的任意位置執行命令:

zkServer.sh status

我們會發現,配置環境變量的好處是能讓命令在不同路徑下,都能成功執行。

2.4啟動ZooKeeper

對于ZooKeeper的服務,需要在虛擬機中啟動后才能使用。啟動ZooKeeper命令:

zkServer.sh start

對于ZooKeeper的服務,還可以查看狀態與關閉服務,命令:

# 查看狀態
zkServer.sh status
# 如果想關閉可以使用stop
zkServer.sh stop

一般地,當僅在一臺服務器上啟動了ZooKeeper服務,可能無法查看到它所對應的服務角色。
此時,可以多開啟一臺虛擬機的ZooKeeper服務,再查看角色信息。
當要啟動Zookeeper服務時,可以執行zkServer.sh start;命令
在查看服務時,記住三個關鍵字:start啟動、status狀態、stop停止。

3,使用ZooKeeper

3.1,客戶端連接

當已經成功開啟了Zookeeper服務后,則可以使用客戶端來連接服務并執行相應操作了。
連接Zookeeper服務時,有兩種方式:

# 方式1:連接其他節點
[root@node1 ~]# zkCli.sh -server IP地址
# 方式2:直接連接本地
[root@node1 ~]# zkCli.sh

請添加圖片描述
采用zkCli.sh直接連接本地的zkServer,并完成常見命令的使用。
(1)當要遠程連接不同服務器的Zookeeper服務時,使用zkCli.sh -server IP地址命令;
(2)注意,當想要快速查看zookeeper客戶端的操作命令,可以直接執行help命令。

3.2數據模型

ZooKeeper的數據模型稱為Znode,一般有兩種體現:
(1)目錄:可以存儲數據,也可以當做目錄使用
(2)文件:可以存儲數據,也可以當做目錄使用
ZooKeeper的數據模型也有一些不同之處:

1)Znode兼具文件和目錄兩種特點:Znode沒有文件和目錄之分,Znode既能像文件一樣存儲數據,也能像目錄作為路徑標識的一部分;
(2)Znode具有原子性操作: 讀操作將獲取與節點相關的所有數據,寫操作也將替換掉節點的所有數據;
(3)Znode存儲數據大小有限制: 每個Znode的數據大小至多1M,但是在常規使用中,應該遠小于此值;
(4)Znode通過路徑引用: 路徑必須是絕對的,因此他們必須由斜杠字符來開頭。除此以外,他們必須是唯一的,也就是說每一個路徑只有一個表示,因此這些路徑不能改變。
并且,會發現:默認有/zookeeper節點用以保存關鍵的管理信息。

在zookeeper中的節點是目錄或文件都能存儲數據,這個描
述正確
(2)通常地,zookeeper數據模型分為目錄、文件,但本質上區別不大。

3.3節點類型

create [-e] 節點路徑名 數據值
創建數據節點。
當添加-e后,表示臨時節點;當創建多層節點時,要保證
已創建最后子節點前的所有節點。
Znode節點類型有兩類,分別為:

1)永久節點
該節點的生命周期不依賴于會話,并且只有在客戶端顯示執行刪除操作時,他們才能被刪除;
注意: 永久節點可以擁有子節點。
(2)臨時節點
該節點的生命周期依賴于創建它們的會話。一旦會話結束,臨時節點將被自動刪除,也可手動刪除;
注意: 臨時節點不允許擁有子節點。

當然了,可以通過創建節點是否添加-e選項或ls2能查看到節點類型:

# 添加了-e表示臨時節點,否則為永久節點
create [-e] 節點路徑名 數據值
# 查看ephemeralOwner字段為0x0時,為永久節點; 結果值較長的為臨時節點
ls2 節點路徑名
cZxid:Znode創建的事務id。
ctime:Znode創建時的時間戳。
mZxid:Znode被修改的事務id,即每次對當前znode的修改都會更新mZxid。
mtime:Znode最新一次更新發生時的時間戳。
pZxid:Znode的子節點列表變更的事務ID,添加子節點或刪除子節點就會影響子節點列表。
cversion:子節點進行變更的版本號。添加子節點或刪除子節點就會影響子節點版本號。
dataVersion:數據版本號,每次對節點進行set操作,dataVersion的值都會增
加1(即使設置的是相同的數據),可有效避免了數據更新時出現的先后順序問題。
aclVersion:權限變化列表版本 access control list Version。
ephemeralOwner:字面翻譯臨時節點擁有者,持久節點值為0x0,非持久節點不為0(會話ID)。
dataLength:Znode數據長度。
numChildren:當前Znode子節點數量(不包括子子節點)。

當在使用create關鍵字創建節點時,添加-e表示創建臨時節點
(2)當在查看節點詳細信息時,可以通ephemeralOwner字段值來區分臨時或永久節點

3.4Watch監聽機制

通常地,一個典型的發布/訂閱模型系統定義了一種一對多的訂閱關系,能讓多個訂閱者同時監聽某一個主題對象,當這個主題對象自身狀態發生變化時,會通知所有訂
閱者,使他們能夠做出相應的處理。
ZooKeeper允許客戶端向服務端注冊一個Watcher監聽,當服務端的一些事件觸發了這個Watcher,那么就會向指定客戶端發送一個事件通知來實現分布式的通知功能。
watch監聽機制過程有:
(1)客戶端向服務端注冊Watcher;
(2)服務端事件發生觸發Watcher;
(3)客戶端回調Watcher得到觸發事件情況
僅需到某客戶端中設定監聽機制格式為
get /節點名 watch
Watch監聽機制有如下特點:

a)先注冊再觸發: Zookeeper中的watch機制,必須客戶端先去服務端注冊監聽,這樣事件發送才會觸發監聽,并通知給客戶端;
b)一次性觸發: 事件發生觸發監聽后,一個watcher event就會被發送到設置監聽的客戶端,這種效果是一次性的,后續再次發生同樣的事件,不會再次觸發;
c)異步發送: watcher的通知事件從服務端發送到客戶端是異步的;(同時進行)
d)通知內容: 通知狀態(keeperState),事件類型(EventType)和節點路徑(path)。

3.5選舉機制

(1)數據發布/訂閱
數據發布/訂閱系統,就是發布者將數據發布到ZooKeeper的一個節點上,提供訂閱者進行數據訂閱,從而實現動態更新數據的目的,實現配置信息的集中式管理和數據的動態更新。監聽機制就是[數據發布/訂閱]快速實現。
(2)提供集群選舉
在分布式環境下,不管是主從架構集群,還是主備架構集群,要求在服務時,有且僅有一個正常的對外提供服務的主服務器,我們稱之為Master。
當master出現故障之后,需要重新選舉出新的Master,用以保證服務的連續可用性。
而Zookeeper則可以提供這樣的功能服務,但一般會涉及到:znode唯一性、臨時節點短暫性、監聽機制等知識使用。
通常情況下,選舉機制要求:過半原則。
所以,我們會發現搭建集群一般都是奇數,即只要某個node節點票數過半立刻成為leader。
當然了,選舉機制下,也有兩個特殊情況:
(1)集群第一次啟動
啟動follower每次投票后,他們會相互同步投票情況,如果票數相同,誰的myid大,誰就當選leader。
一旦確定了leader,后面來的默認就是follower,即使它的myid大,leader也不會改變(除非leader宕機了)。

# 進入數據目錄
cd /export/server/zookeeper/zkdatas
# 查看myid值大小
cat myid

(2)leader宕機后,再次啟動
每一個leader當老大時,都會產生新紀元epoch,且每次操作完節點數據都會更新事務id(高32位_低32位) ,而當leader宕機后,剩下的follower就會綜合考慮幾個因素
選出最新的leader。先比較最后一次更新數據事務id(高32位_低32位),誰的事務id最大,誰就當選leader。
如果更新數據的事務id都相同的情況下,就需要再次考慮myid,誰的myid大,誰就當選leader。

(1)通常情況下,不管選舉時屬于哪種情況,都有考慮myid值的大小
請添加圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/160125.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160125.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160125.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

邏輯漏洞(業務邏輯)dami CMS

邏輯漏洞(業務支付邏輯漏洞)dami CMS 0x01 業務邏輯簡介 業務邏輯指的是一個系統或應用程序中的實際業務規則和流程。它描述了如何處理特定的業務需求、數據和操作。業務邏輯通常是根據特定行業或組織的需求而設計的。 在軟件開發中,業務邏…

零編程基礎Python的全面學習指南

文章目錄 前言什么是編程?Python代碼對應的機器碼準備開始Windows變量類型整型字符串型布爾類型字符串連接和整數相加if 語句捕獲用戶輸入導入MacWindows游戲時間!小結關于Python技術儲備一、Python所有方向的學習路線二、Python基礎學習視頻三、精品Pyt…

磐舟CI使用說明及案例

整體介紹 磐舟作為一個devops產品,它具備基礎的CI流水線功能。同時磐舟的流水線是完全基于云原生架構設計的,在使用時會有一些注意事項。這里首先我們要了解磐舟整體的流水線打包邏輯。 文檔結構說明 一般來說,磐舟推薦單個業務的標準git庫…

反編譯-ApkTool

ApkTool下載地址: Apktool | ApktoolA tool for reverse engineering Android apk fileshttps://apktool.org/ 1、使用 apktool 解包 執行 java -jar apktool_2.4.1.jar d demo.apk -o demo 命令 java -jar apktool_2.4.1.jar d demo.apk -o demo 其中 d 后面是…

Nevron Vision for .NET 2023.1 Crack

Nevron Vision for .NET 適用于桌面和 Web 應用程序的高級數據可視化 Nevron Vision for .NET提供最全面的組件,用于構建面向 Web 和桌面的企業級數據可視化應用程序。 該套件中的組件具有連貫的 2D 和 3D 數據可視化效果,對觀眾產生巨大的視覺沖擊力。我…

基于window10的遠程桌面報錯:要求的函數不受支持 的問題解決方法

基于window10的遠程桌面報錯:要求的函數不受支持 的問題解決方法 設置方法: 一、WINR 在框內輸入gpedit.msc 二、依次打開 計算機配置----管理模板-----系統—憑據分配—加密數據庫修正–改為以啟用—易受攻擊 第一步: 第二步:…

并查集總結

并查集簡介 并查集是一種可以動態維護若干個不重疊的結合,并支持合并與查詢的數據結構 并查集是一種樹狀的數據結構,可以用于維護傳遞關系以及聯通性。 并查集有兩種操作: find:查詢一個元素屬于哪個集合merge:合并兩個集合 模…

爆款文章有訣竅,內容創作者如何能持續產出優質內容

內容營銷人有沒有這么一種共鳴:10 萬 那么多,為什么不能多我一個? 通常,我們把瀏覽量 / 閱讀量高、轉評贊數量高的內容看作爆款,而數據如果達到 10 萬 則是超級爆款。因為,閱讀量高意味著內容得到了大量的曝…

【Linux】使用Makefile自動化編譯項目:簡化開發流程、提高效率

文章目錄 示例一:編譯一個進度條程序示例二:編譯一個簡單的程序gcc的幾個選項結論 當你開始一個新的軟件項目時,編寫一個好的Makefile是非常重要的。Makefile是一個文本文件,用于指定如何構建和編譯項目。它定義了目標文件、依賴關…

8年老鳥整理,自動化測試-準備測試數據詳細...

目錄:導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結(尾部小驚喜) 前言 大部分類型的測試…

基于C#實現Bitmap算法

在所有具有性能優化的數據結構中,我想大家使用最多的就是 hash 表,是的,在具有定位查找上具有 O(1)的常量時間,多么的簡潔優美,但是在特定的場合下: ①:對 10 億個不重復的整數進行排序。 ②&am…

python獲取透明圖

import cv2 import os import numpy as nproot "./test" for file in os.listdir(root):# 讀取圖片image cv2.imread(os.path.join(root, file), cv2.IMREAD_UNCHANGED)new np.zeros((image.shape[0], image.shape[1], image.shape[2]), np.uint8)# 檢查圖片是否為…

AI原生應用為百度帶來新增量

我是盧松松,點點上面的頭像,歡迎關注我哦! AI將徹底改變每一個行業!得益于AI和基礎模型的驅動,百度在AI原生應用領域厚積薄發。 11月21日,百度Q3財報發布,數據顯示:三季度營收達344.47億元&…

Redis篇---第九篇

系列文章目錄 文章目錄 系列文章目錄前言一、如果有大量的 key 需要設置同一時間過期,一般需要注意什么?二、什么情況下可能會導致 Redis 阻塞?三、緩存和數據庫誰先更新呢?前言 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊…

Axios簡單使用與配置安裝-Vue

安裝Axios npm i axios main.js 導入 import Axios from axios Vue.prototype.$axios Axios簡單發送請求 get getTest() {this.$axios({method: GET,url: https://apis.jxcxin.cn/api/title?urlhttps://apis.jxcxin.cn/}).then(res > {//請求成功回調console.log(res)}…

uiautomator2快速入門app自動化測試教程

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、環境準備1.安裝軟件2.安裝庫 二、adb 連接手機1. 準備工作2. 第一種連接方式:USB連接3. 第二種連接方式:WLAN連接4. 第三種連接方式…

②⑩ 【MySQL Log】詳解MySQL日志:錯誤日志、二進制日志、查詢日志、慢查詢日志

個人簡介:Java領域新星創作者;阿里云技術博主、星級博主、專家博主;正在Java學習的路上摸爬滾打,記錄學習的過程~ 個人主頁:.29.的博客 學習社區:進去逛一逛~ MySQL日志 ②⑩ MySQL日志:錯誤日志…

SpringBoot3.x最簡集成SpringDoc-OpenApi

為什么使用SpringDoc 在SpringBoot低版本時一般使用Swagger掃描接口生成Json格式的在線文檔,然后通過swagger-ui將Json格式的文檔以頁面形式展示文檔。可惜遺憾的是swagger更新到3.0.0版本(springfox)后不更新了。 SpringBoot3.x以后需要的JDK版本最低為Java17&…

MQ和redis的內部原理一些總結

首先,先知道內部原理;其次,就是查官方文檔實戰了。 但是如果不熟悉內部原理,那么僅僅只是安裝官方文檔,并不能排除跟蹤問題和故障、預防風險等策略; 以下總結圖解:(mysql 8.0新增的…