了解分布式(Distributed)系統數據存儲的幾個概念

分佈式(Distributed)系統是若干獨立計算機的集合,這計算機對用戶來說就像單個相關係統。以上定義摘自<>一書。

分佈式數據庫是用計算機網絡將物理上分散的多個數據庫單元連接起來組成的一個邏輯上統一的數據庫。每個被連接起來的數據庫單元稱為站點或結點。分佈式數據庫有一個統一

的數據庫管理系統來進行管理,稱為分佈式數據庫管理系統。

Hadoop是一個分佈式系統基礎架構,由Apache基金會開發。用戶可以在不瞭解分佈式底層細節的情況下,開發分佈式程序。充分利用集群的威力高速運算和存儲。

HDFS(Hadoop Distributed File System)是Hadoop實現的一個分佈式文件系統。它存儲 Hadoop 集群中所有存儲節點上的文件。對外部客戶機而言,HDFS 就像一個傳統的分級

文件系統。可以創建、刪除、移動或重命名文件,等等。但是 HDFS 的架構是基於一組特定的節點構建的,存儲在 HDFS 中的文件被分成塊,然後將這些塊複製到多個計算機中

(DataNode)。這與傳統的 RAID 架構大不相同。塊的大小(通常為 64MB)和複製的塊數量在創建文件時由客戶機決定。NameNode 可以控制所有文件操作。HDFS 內部的所有通信

都基於標準的 TCP/IP 協議。

HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分佈式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。HBase是Apache

的Hadoop項目的子項目。HBase不同於一般的關係數據庫,它是一個適合於非結構化數據存儲的數據庫。另一個不同的是HBase基於列的而不是基於行的模式。Hadoop HDFS為HBase

提供了高可靠性的底層存儲支持,Hadoop MapReduce為HBase提供了高性能的計算能力,Zookeeper為HBase提供了穩定服務和failover機制。此外,Pig和hive還為HBase提供了高層

語言支持,使得在HBase上進行數據統計處理變的非常簡單。 Sqoop則為HBase提供了方便的RDBMS數據導入功能,使得傳統數據庫數據向HBase中遷移變的非常方便。

Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件(例如xml)映射為一張數據庫表,並提供完整的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行

。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。

分庫分表顧名思義,即把存於一個庫的數據分散到多個庫中,把存於一個表的數據分散到多個表中。

讀、寫分離的原理是將事務型操作(增、刪、改)與非事務弄操作(讀)分發到不同數據庫實例上去執行。數據庫實例之間要進行數據的主、從同步,往往寫數據庫實例為主數據

庫;讀數據庫實例為從數據庫。

數據庫中間件(Distributed Database Middleware)是解決數據庫容量、性能瓶頸和分佈式擴展問題的中間件服務,提供分庫分表、讀寫分離、彈性擴容等能力,應對海量數據的

高併發訪問場景,有效提升數據庫讀寫性能。

RPC 的全稱是 Remote Procedure Call 是一種進程間通信方式。它允許程序調用另一個地址空間(通常是共享網絡的另一臺機器上)的過程或函數,而不用程序員顯式編碼這個遠程調用的細節。即無論是調用本地接口/服務的還是遠程的接口/服務,本質上編寫的調用代碼基本相同。

比如兩臺服務器A,B,一個應用部署在A服務器上,想要調用B服務器上應用提供的函數或者方法,由於不在一個內存空間,不能直接調用,這時候需要通過就可以應用RPC框架的實現來解決。


分享到:


相關文章: