分布式(Distributed)系統(tǒng)是若干獨立計算機的集合,這計算機對用戶來說就像單個相關系統(tǒng)。
分布式數(shù)據庫是用計算機網絡將物理上分散的多個數(shù)據庫單元連接起來組成的一個邏輯上統(tǒng)一的數(shù)據庫。每個被連接起來的數(shù)據庫單元稱為站點或結點。分布式數(shù)據庫有一個統(tǒng)一
的數(shù)據庫管理系統(tǒng)來進行管理,稱為分布式數(shù)據庫管理系統(tǒng)。
Hadoop是一個分布式系統(tǒng)基礎架構,由Apache基金會開發(fā)。用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力高速運算和存儲。
HDFS(Hadoop Distributed File System)是Hadoop實現(xiàn)的一個分布式文件系統(tǒng)。它存儲Hadoop集群中所有存儲節(jié)點上的文件。對外部客戶機而言,HDFS就像一個傳統(tǒng)的分級
文件系統(tǒng)??梢詣?chuàng)建、刪除、移動或重命名文件,等等。但是HDFS的架構是基于一組特定的節(jié)點構建的,存儲在HDFS中的文件被分成塊,然后將這些塊復制到多個計算機中
(DataNode)。這與傳統(tǒng)的RAID架構大不相同。塊的大?。ㄍǔ?4MB)和復制的塊數(shù)量在創(chuàng)建文件時由客戶機決定。NameNode可以控制所有文件操作。HDFS內部的所有通信
都基于標準的TCP/IP協(xié)議。
HBase–Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),利用HBase技術可在廉價PC Server上搭建起大規(guī)模結構化存儲集群。HBase是Apache
的Hadoop項目的子項目。HBase不同于一般的關系數(shù)據庫,它是一個適合于非結構化數(shù)據存儲的數(shù)據庫。另一個不同的是HBase基于列的而不是基于行的模式。Hadoop HDFS為HBase
提供了高可靠性的底層存儲支持,Hadoop MapReduce為HBase提供了高性能的計算能力,Zookeeper為HBase提供了穩(wěn)定服務和failover機制。此外,Pig和hive還為HBase提供了高層
語言支持,使得在HBase上進行數(shù)據統(tǒng)計處理變的非常簡單。Sqoop則為HBase提供了方便的RDBMS數(shù)據導入功能,使得傳統(tǒng)數(shù)據庫數(shù)據向HBase中遷移變的非常方便。
Hive是基于Hadoop的一個數(shù)據倉庫工具,可以將結構化的數(shù)據文件(例如xml)映射為一張數(shù)據庫表,并提供完整的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。
其優(yōu)點是學習成本低,可以通過類SQL語句快速實現(xiàn)簡單的MapReduce統(tǒng)計,不必開發(fā)專門的MapReduce應用,十分適合數(shù)據倉庫的統(tǒng)計分析。
分庫分表顧名思義,即把存于一個庫的數(shù)據分散到多個庫中,把存于一個表的數(shù)據分散到多個表中。
讀、寫分離的原理是將事務型操作(增、刪、改)與非事務弄操作(讀)分發(fā)到不同數(shù)據庫實例上去執(zhí)行。數(shù)據庫實例之間要進行數(shù)據的主、從同步,往往寫數(shù)據庫實例為主數(shù)據
庫;讀數(shù)據庫實例為從數(shù)據庫。
數(shù)據庫中間件(Distributed Database Middleware)是解決數(shù)據庫容量、性能瓶頸和分布式擴展問題的中間件服務,提供分庫分表、讀寫分離、彈性擴容等能力,應對海量數(shù)據的
高并發(fā)訪問場景,有效提升數(shù)據庫讀寫性能。
RPC的全稱是Remote Procedure Call是一種進程間通信方式。它允許程序調用另一個地址空間(通常是共享網絡的另一臺機器上)的過程或函數(shù),而不用程序員顯式編碼這個遠程調用的細節(jié)。即無論是調用本地接口/服務的還是遠程的接口/服務,本質上編寫的調用代碼基本相同。
比如兩臺服務器A,B,一個應用部署在A服務器上,想要調用B服務器上應用提供的函數(shù)或者方法,由于不在一個內存空間,不能直接調用,這時候需要通過就可以應用RPC框架的實現(xiàn)來解決。