天天看點

分布式與叢集了解

生活執行個體:

小飯店原來隻有一個廚師,切菜洗菜備料炒菜全幹。

後來客人多了,廚房一個廚師忙不過來,又請了個廚師,兩個廚師都能炒一樣的菜,兩個廚師的關系是叢集。

為了讓廚師專心炒菜,把菜做到極緻,再請了個配菜師負責切菜,備菜,備料 ...  廚師和配菜師的關系是分布式。

一個配菜師也忙不過來了,又請了個配菜師,兩個配菜師關系是叢集。

一個配菜師因故請假了,但是其餘的配菜師還是該啥就幹啥,隻是沒請假的配菜師任務均勻的加量了,但他們的任務和職責是不變的,這是叢集。

叢集:多個人在一起作同樣的事 。

分布式 :多個人在一起作不同的事 。

主要解決的問題:

1.分布式是解決中心化管理的問題,把所有的任務疊加到一個節點處理,太慢了。是以把一個大的問題拆分為多個小的問題,并分别解決,最終協同合作。分布式的主要工作是分解任務,将職能拆解。

2.叢集主要的使用場景是為了分擔請求的壓力,也就是在幾個伺服器上部署相同的應用程式,來分擔用戶端請求。

當壓力進一步增大的時候,可能在需要存儲的部分,mysql無法面對很多的寫壓力。因為在mysql做成叢集之後,主要的寫壓力還是在master的機器上面,其他slave機器無法分擔寫壓力,進而這個時候,也就引出來分布式。

分布式的主要應用場景是單台機器已經無法滿足這種性能的要求,必須要融合多個節點,并且節點之間是相關之間有互動的。相當于在寫mysql的時候,每個節點存儲部分資料,也就是分布式存儲的由來。在存儲一些非結構化資料:靜态檔案、圖檔、pdf、小視訊 ... 這些也就是分布式檔案系統的由來。

3.

叢集主要是簡單加機器解決問題,對于問題本身不做任何分解;

分布式處理裡必然包含任務分解與答案歸并。分布式中的某個子任務節點,可能由一個叢集來代替;叢集中任一節點,都是做一個完整的任務。

叢集和分布式都是由多個節點組成,但是叢集之間的通信協調基本不需要;而分布式各個節點的通信協調必不可少。

将一套系統拆分成不同子系統部署在不同伺服器上(這叫分布式),然後部署多個相同的子系統在不同的伺服器上(這叫叢集),部署在不同伺服器上的同一個子系統應做負載均衡。

分布式:一個業務拆分為多個子業務,部署在多個伺服器上 。

叢集:同一個業務,部署在多個伺服器上 。

​​

Hadoop , HDFS, HBase, Hive

Hadoop是一個分布式系統基礎架構,基于這個架構開發分布式應用程式,利用叢集的高速運算和存儲的威力。類似于,基于NVIDIA 的 CUDA并行架構開發并行程式,發揮GPU的并行計算能力。

HDFS是hadoop的檔案系統。基于HDFS,你可以對檔案進行操作,例如建立,删除,編輯,重命名等。

Hbase: 基于Hadoop架構的資料庫系統。不是關系型資料庫,基于列的模式。

Hive: 基于hbase的高層語言。類似于SQL --- 通路和處理關系型資料庫的計算機語言。