云計算知識點梳理
時間:2023-03-13 05:04:01 | 來源:電子商務
時間:2023-03-13 05:04:01 來源:電子商務
第一章:大數據與云計算
1. 分辨出軟件是屬于 Iass,Paas, Saas 的哪一類?
將云計算按照服務類型可以分為三類:Iaas,Paas,Saas。
Iaas :將基礎設施作為服務,將硬件設備等基礎資源封裝成服務供用戶使用。- Amazon EC2 彈性云計算服務
- Amazon S3 簡單存儲服務
- Amazon Web Services
- (如上,都是底層的硬件環(huán)境,提供的只是基本硬件環(huán)境,云計算或者存儲所需要的高性能CPU計算和大容量硬盤。)
Paas:將平臺作為服務,提供用戶應用程序的運行環(huán)境。- Google App Engine
- Microsoft Windows Azure
- Amazon MapReduce (仿 Google MapReduce)
- Amazon SimpleDB(仿 Goggle BigTable)
- (如上,都是基本的操作系統(tǒng)平臺、引擎、數據庫系統(tǒng),類似于一個空白的 IDE )
Saas:將軟件作為服務,只提供某些專門用途的服務供應用調用。- Salesforce online CRM 在線客戶關系管理服務
- Amazon FPS 電子商務服務
- Amazon DevPay
- Amazon Alexa Web 網站訪問統(tǒng)計服務
- (如上,提供的都是專門的針對某一服務的特定制作的應用解決方案,類似于 App)
2. 云計算的發(fā)展歷史以及在云計算技術出現之前和之后出現的計算機技術了解。
云計算的概念最先由Google在2006年提出,同年Google,Amazon,Microsoft相繼提出云計算服務。
云計算領域的代表:- 國外:Amazon,Google,Microsoft,VMware,Salesforce,Facebook,YouTube,Myspace
- 國內:阿里云、騰訊、七牛云、UCloud
云計算的特點:- 超大規(guī)模
- 虛擬化
- 高可靠性
- 通用型
- 高可伸縮性
- 按需服務
- 極其廉價
3. 云計算的發(fā)展重點是什么?
云計算的優(yōu)勢:- 在于它的技術特征和規(guī)模效應所帶來的壓倒性的性能價格比優(yōu)勢。
云計算的定義:- 通過網絡提供可動態(tài)伸縮的廉價的計算和存儲能力。
云計算的主要特征:第二章:Google 云計算原理與應用
1. Google 云計算三大件(GFS,MapReduce,BigTable)的了解。
Google云計算技術包括:- Google文件系統(tǒng)GFS
- 分布式計算編程模型 MapReduce
- 分布式鎖服務 Chubby
- 分布式結構化數據表 Bigtable
- 分布式存儲系統(tǒng) Megastore
- 分布式監(jiān)控系統(tǒng) Dapper
- 海量數據的交互式分析工具 Dreme
- 內存大數據分析系統(tǒng) PowerDrill
- Google應用程序引擎
2. GFS 的存儲方式是什么?它有什么特點,它是如何提高可靠性的?
Google文件系統(tǒng)( Google File System,GFS)是一個閉源的大型分布式文件系統(tǒng)。它為 Google云計算提供海量存儲,處于所有核心技術的底層。
GPS 的系統(tǒng)結構:- GFS將整個系統(tǒng)的節(jié)點分為三類角色: Client(客戶端)、 Master(主服務器)和 Chunk Server(數據塊服務器)。
- Client是GFS提供給應用程序的訪問接口,以庫文件的形式提供應用程序直接調用這些庫函數,并與該庫鏈接在一起。
- Master是GFS的管理節(jié)點,在邏輯上只有一個,它保存系統(tǒng)的元數據,負責整個文件系統(tǒng)的管理,是GFS文件系統(tǒng)中的“大腦”。
- Chunk Server負責具體的存儲工作。數據以文件的形式存儲 在 Chunk Server上, Chunk Server的個數可以有多個,它的數目直接決定了GFS的規(guī)模。GFS將文件按照固定大小進行分塊,默認是64MB,每一塊稱為一個 Chunk(數據塊),每個 Chunk都有一個對應的索引號。
GFS 的存儲方式:- 在 GFS 中,數據存儲在 Chunk Server(數據塊服務器)中,GFS 將文件以塊的形式存儲在 Chunk Server 上,在 Chunk Server 內部,數據又以文件的形式進行存儲。
GFS 的特點:- 采用中心服務器模式:使用 Master 管理分布式文件系統(tǒng)中的所有元文件。便于增加新的 Chunk Server,但是也使得 Master 成為了 GFS 的主要瓶頸。
- 不緩存數據:對于需要頻繁讀取的數據直接保存到內存中,而不是進行緩存。避免了緩存與實際數據不一致的問題,減少了緩存對系統(tǒng)資源的耗費。提高了操作的效率。
- 在用戶態(tài)下表現:提高了通用性和穩(wěn)定性。
- 只提供專用接口:主要面向 Google 自身的應用程序提供服務,所以使用專業(yè)接口,可以降低實現難度、對某些應用提供特殊支持、提高效率。
GPS 可靠性的保證:- Master 容錯機制:
- 對 GFS 的 命名空間 和 Chunk與文件名的映射表,GFS 通過操作日志來提供容錯功能。
- 對于 GFS 的 Chunk副本的位置信息,則一式三份直接保存到各個 Chunk Server 上。(所以,當 Master 故障時,可以迅速恢復這些數據。)
- Chunk Server 容錯機制:每一個 Chunk 有多個存儲副本,分布存儲在不同的 Chunk Server 上。當某個相應的副本受損時, Master 自動將該副本復制到其他 Chunk Server 上。
3. MapReduce 是什么?它如何對中間結果進行合并?
MapReduce 是 Google 提出的一個軟件架構,是一種處理海量數據的并行編程模式,用于大規(guī)模數據集的并行運算。其主要思想是 Map(映射) 和 Reduce(化簡)。它具有函數式編程語言和矢量編程語言的共性,非常適合于非結構化和結構化的大數據運算環(huán)境(搜索、挖掘、分析、機器學習)。
MapReduce 的編程模型:- 一個 Map 函數對應一部分原始數據,對這部分的原始數據進行映射操作。
- Map 之間是互相獨立的,使得它們可以充分并行化。
- 一個 Reduce 操作是對每個 Map 所產生的一部分的中間結果進行合并操作。
- Reduce 之間是互相獨立的,其產生過的最終結果簡單的連接就形成了完成的結果集。
4. BigTable 是并行運算軟件架構還是軟件模式?它是干什么的?它與其他傳統(tǒng)的數據庫有什么區(qū)別?
BigTable 是一個 Google 開發(fā)的基于 GFS 和 Chuuy 的結構化的分布式存儲系統(tǒng)。
BigTable 的基本目標:BigTable 的數據模型:- BigTable 是一個分布式多維映射表,表中的數據通過一個行關鍵字、列關鍵字以及一個時間戳進行索引。
BigTable 與傳統(tǒng)數據庫之間的區(qū)別:- 從系統(tǒng)架構的角度來說,互聯網應用更加看重系統(tǒng)性能以及伸縮性,而傳統(tǒng)企業(yè)級應用都是比較看重數據完整性和數據安全性。
- 傳統(tǒng)數據庫是面向行存儲的,適合于事務性要求嚴格場合。但是云計算的數據庫 BigTable,HBase 等都是面向列存儲的,可以實現高性能的并發(fā)讀寫操作,有較好的水平伸縮性。
第三章:Amazon 云計算 AWS
1. EC2 了解
EC2 是亞馬遜的彈性計算云服務,它可以提供大小可調節(jié)的計算容量。具有低成本、靈活性、安全性、易用性和容錯性的特征。用戶可以借助 EC2 在不需要硬件投入的情況下,快速開發(fā)和部署應用開發(fā),并方便的配置和管理。
EC2 的基本架構主要包括了
Amazon機器映像(AMI),
實例,
存儲模塊 等組成部分,并能夠與 S3 等其他 Amazon 云計算服務結合使用。
EC2 的關鍵技術:- 地域區(qū)域和可用區(qū)域:地域區(qū)域是按照實際的地理位置進行劃分的,目前亞馬遜總共劃分了10個地理區(qū)域;可用區(qū)域是地理區(qū)域的一個個更細劃分的子集,是根據有沒有獨立的供電系統(tǒng)和冷卻系統(tǒng)進行劃分的。
- EC2 的通信機制:EC2 中的 IP 地址總共有三大類:公共 IP 地址、私有 IP 地址 和 彈性 IP 地址。
- 彈性負載平衡:彈性負載平衡可以識別出應用實例的狀態(tài),當一個應用運行不佳時,它會自動將流量路由到狀態(tài)較好的實例資源上,當前者恢復正常后才會重新分配流量到其實例上。
- 監(jiān)控服務
- 自動縮放:用戶可以自定義 EC2 的計算能力。
- 服務管理控制臺:它是一種基于 Web 的控制環(huán)境,可用于啟動、管理 EC2 實例和提供各種管理工具和 API 接口。
EC2 的安全及容錯機制:- 安全組技術:在保障用戶可以隨時更新實例的基礎上,對實例能夠接受的網絡流量進行過濾。
- 使用 SSH 密鑰實現用戶的登陸服務。
- 使用彈性 IP ,使用戶在實例發(fā)生故障時可以快速的新實例進行連接。
2. S3 了解
S3 是亞馬遜的基于 Dynamo 基礎存儲架構的簡單存儲服務,它可以用于提供任意類型文件的臨時或永久性存儲。S3 具有可靠、易用和低成本的特征。
S3 的基本概念:- 桶:桶是用于存儲對象的容器(但是不能像文件夾一樣進行嵌套的建立),其名稱在整個 Amazon S3 服務器中是唯一的。
- 對象:對象是 S3 的基本存儲單元,由 數據 和 元數據 組成。每個對象在桶中有唯一的 鍵 ,一但建立后便不能再修改。
- 數據可以是任意類型的,但大小受到對象最大容量的限制。
- 元數據是數據內容的附加描述信息,通過 名稱-值 集合的方式定義。
S3 的基本操作:- S3 支持對桶和對象的操作,主要包括 Get 、 Put 、 List (對象不支持)、 Delete 、Head(桶不支持)。
S3 的安全措施:- 身份認證
- 訪問控制列表:訪問控制列表規(guī)定了 S3 的三大授權用戶(所有者、個人授權用戶、組授權用戶)
第五章/第六章:Hadoop2.0
1. Hadoop 概念了解
分布式存儲:- 使用 客戶-服務器模式 ,master 負責進行統(tǒng)一管理各個 slave 的存儲空間,slaves 負責存儲真實的數據。這樣,就能夠將多臺機器硬盤結合在一起,擴大整機的存儲容量。
分布式計算:- Google 在 MapReduce 中給出觀點 “移動計算比移動數據更劃算”,因為數據量很大(幾 T),而計算代碼很?。◣?K)。
- 分布式移動計算的步驟大致可以分為三步:Map(本地計算)、Shuffle(洗牌)、Reduce(合并再計算)。
- Map:在各個 slave 中分別獨立進行本地計算,將生成了 KV 對保存在本地。
- Shuffle:將各個 slave 中 Key 值相同的 KV 對通過網絡發(fā)往同一臺機器。
- Reduce:將每臺機器各自的 KV 對中的 value 連成鏈表,進行合并相加。
冗余存儲:- 將 slave1 中的 file1 重復存儲在 slave3 中,實現冗余存儲,防止一臺 slave 宕機導致的數據的丟失。
- 通過冗余存儲,不僅提高了分布式存儲可靠性,還提高了分布式計算的可靠性。
冗余計算:- 對保存有 file1 的 slave1 和 slave3 同時計算,如果都沒有丟失數據,就取最先計算結束的那臺機子的計算結果。如果一臺丟失,可以使用另一臺的。
HDFS 的內部特征:- 冗余備份:HDFS 以塊的方式對文件進行存儲。文件的所有數據塊都會有副本。且文件每次都是一次性寫入的,在任何時候都只能擁有一個寫用戶。
- 副本存放:使用機架感知的策略來改進數據的可靠性、可用性和網絡帶寬的利用率。
- 副本選擇:HDFS 盡量選擇離程序最近的副本,從而減少總帶寬的消耗和讀延時。
- 心跳檢測:namenode 周期性地接收每個 datanode 發(fā)送來的心跳包和數據塊,如果 namenode 沒有接收到 datanode 的心跳包,就說明 datanode 已經宕機了,不對它發(fā)送任何 IO 請求。
- 數據完整性檢測:當客戶端接收到文件后,會檢測從 datanode 獲得的數據塊的校驗和是否和隱藏文件中的相同。
- 。。。
分布式操作系統(tǒng) Yarn- Yarn 除了像一般的操作系統(tǒng)功能一樣管理整個集群的計算資源(CPU、內存等),還提供用戶程序訪問系統(tǒng)資源的 API。
第七章:虛擬化技術
1. 虛擬化的特征
虛擬化技術的核心思想是里利用軟件或固件管理程序構建虛擬化層,把物理資源映射為虛擬資源。在虛擬資源上可以安裝或部署多個虛擬機,實現多用戶共享物理資源。數據中心的虛擬化可以實現資源的動態(tài)分配和調度,提高現有資源的利用率和服務可靠性;可以提供自動化的服務開通能力,降低運維成本;具有有效的安全機制和可靠性機制,滿足公眾客戶和企業(yè)客戶的安全需求;同時也可以方便系統(tǒng)升級、遷移和改造。
2. 虛擬化的實現
數據中心的虛擬化是通過
服務器虛擬化 、
存儲虛擬化 、
網絡虛擬化 來實現的。
- 服務器虛擬化:采用云計算虛擬架構相比于傳統(tǒng)單臺服務器部署單一應用方式的另外一個好處是,可以充分滿足不同應用對系統(tǒng)資源的不同要求,如有的應用只需要一個3.0 GHz CPU,512MB的內存就可以很好的運行,而有的高訪問率、高吞吐量的應用則需要2個甚至是4個雙核的CPU,8GB的內存才能保證穩(wěn)定的運行,在傳統(tǒng)方式下,往往不可能針對每一種應用來采購服務器,而是用一種或幾種標準配置的服務器來統(tǒng)一采購,這樣,勢必會造成某些應用資源富裕,而另一些應用面臨資源緊張的情況,且應用之間不能互相調配資源。采用虛擬架構后,由于每個虛擬機所需使用的系統(tǒng)資源都是由虛擬架構軟件統(tǒng)一調配,這種調配可以在虛擬機運行過程中在線的發(fā)揮作用,使得任何一個應用都可以有充分保證的資源來穩(wěn)定運行,同時,該應用在此時用不到的資源又可以被其他更需要資源的應用臨時借用過去,最大限度的提高了整體系統(tǒng)的資源利用率。
- 存儲虛擬化:區(qū)域彈性存儲可以根據客戶的需求實時劃分存儲空間,并通過高速局域網絡掛載到本區(qū)域內任意指定的虛擬機,在虛擬機上可以將磁盤格式化為ext2/ext3/FAT/NTFS等文件系統(tǒng)。在需要的時候,也可以隨時將存儲卸載,并掛載到其它虛擬機上。
- 網絡虛擬化:提供了可選的分布式網絡交換功能,可以從一個集中式界面為整個數據中心設置虛擬機網絡連接,從而簡化網絡管理,可在虛擬機跨多個物理機移動時使其保持網絡運行時狀態(tài),從而實現線內監(jiān)視和集中式防火墻服務。
第八章:OpenStack 開源虛擬化平臺
1. OpenStack 的組件有哪些?
OpenStack 是一個管理
計算 、
存儲 和
網絡資源 的數據中心云計算開放平臺。
易于構建虛擬計算或存儲服務的云,既可以為公有云、私有云,也可以為大云、小云提供可擴展、靈活的云計算。
OpenStack 有三個主要的成員:
Nova(計算服務)、
Swift(存儲服務)、
Glance(鏡像服務)。
第十一章:中國云計算技術
1. 國內云計算現狀
BAT、UCloud、華為、曙光、云創(chuàng)。。。
第十二章:總結和展望
1. 主流商業(yè)云計算解決方案與開源方案之間的比較
全書總結
1. 主流商業(yè)三巨頭(Google、Amazon、Microsoft)產品比較(共同點、方案區(qū)別)?
三家公司云計算體系架構的共同點:- 整個云計算平臺對外提供統(tǒng)一的 Web 接口。
- 后臺實現的細節(jié)對用戶透明。
主要的區(qū)別:- Amazon 、 微軟 的云計算服務都是由多種服務組成,需要為不同的服務提供不同的入口。Google 的云計算服務實現相對簡單,沒有實現多個服務的單獨入口。
- 微軟的云計算服務不僅支持云端應用程序,還支持本地的應用程序,這是微軟云計算和其他三種方案的最大不同之一,反應了微軟的 “云+端” 的策略。
2. 云計算的核心算法 Paxos 的計算
3. 傳統(tǒng)數據庫在云計算下橫向拓展表現較差的原因?
傳統(tǒng)的關系型數據庫中都存在著擴展問題和性能問題。可擴展性主要表現在表空間不足的問題,
如果要對表空間進行擴容,這需要新增機器,需要將這些數據庫中的數據同步等問題。支持的關系數據庫服務器數量有限;只能向上擴展不能橫向擴展。(參考資料:傳統(tǒng)數據庫缺陷 )
4. 虛擬機遷移如何實現
虛擬機遷移是將虛擬機實例從源宿主機遷移到目標宿主機,并且在目標宿主機上能夠將虛擬機運行狀態(tài)恢復到其在遷移前相同的狀態(tài),以便能夠繼續(xù)完成應用程序的任務。
虛擬機遷移主要包括:- P2V(物理機到虛擬機的遷移)
- V2V(虛擬機到虛擬機的遷移)
- V2P(虛擬機到物理機的遷移)
遷移的步驟:- 預遷移:選擇一個目的計算機作為 VM 的新主機
- 預定資源:對 B 發(fā)送遷移請求,確認 B 是否有需要的資源。
- 預復制:A 以迭代的方式將內存頁復制到 B 中,每次迭代只復制前一輪復制之后被修改的內容。
- 停機復制:對 A 停機,將它的網絡連接重定向到 B ,將 CPU 狀態(tài)和上一輪復制后被修改過的頁都傳送到 B 。
- 提交:B 通知 A 已經成功接收了 VM 的映像,A 確認之后,就可以銷毀自己和它上面的 VM 。
- 啟動:啟動 B 上的 VM,并使用目的計算機的設備驅動,廣播新的 IP 地址。
遷移的內容:內存的遷移的三個階段:- Push 階段:預復制
- Stop and Copy:停機復制
- Pull:在新的 VM 運行的時候,如果訪問到未復制過的頁,就從原來的 VM 中去復制過來。
網絡資源的遷移:- 在局域網內,通過發(fā)送 ARP 重定向包,將 VM 的 IP 地址與目的主機的 MAC 地址相綁定,之后的所有包就可以發(fā)送到目的機器上。
存儲設備的遷移:- 在局域網中通過 NFS(Network File System)方式進行共享,而非真正的遷移。
5. 云數據中心的虛擬機管理程序了解
6. MapReduce 的主要工作原理
(見第二章和第五章整理)
7. 云計算發(fā)展趨勢、產業(yè)現狀
云計算目前的缺點:- 平臺角度:沒有統(tǒng)一的標準
- 計算角度:對于不容易分解為眾多互相獨立子任務的緊耦合型計算任務,效率較低
- 數據角度:目前云計算征集數據的方式過于原始,沒有結合網絡技術,直接從網絡中獲取數據。
- 資源集成角度:將各類資源和應用遷移到云計算平臺的成本過高。
- 信息安全角度:失去了絕對控制權。
云計算的發(fā)展方向:- 使用云格技術,將云計算與網絡技術相結合,網絡技術解決分布在不同機構的各種信息資源的共享問題,云計算解決計算力和存儲空間的集中使用問題。
注:筆者也是剛剛開始學習的小白,如有問題請指正,謝謝。
推薦閱讀: