您現在的位置是:首頁 > 運動
openstack、hadoop、sprak、Mapreduce、HDFS、HIVE等一網打盡
hadoop是資料庫嗎
小編本來是不想寫這篇文章的,因為雲計算是分散式、平行計算、網格計算、分散式儲存、虛擬化等一系列技術發展的產物,裡面的水很深,正所謂“只在此山中,雲深不知處”我們在日常工作及學習中經常聽說雲計算的隻言片語,以至於無法識其大貌。但今天我們就幹他一下,徹底弄清楚openstack、hadoop、SOA、虛擬化、Mapreduce、HDFS、HIVE、sqoop、spark之間的關係。
首先還是看圖說話。
這張圖對雲計算進行了剖析,按照這樣圖我們可以總結出各個術語所在的層次。
頂層軟體
基於面向服務的SOA架構所開發出來的松耦合應用軟體
雲計算架構
Hadoop
Hadoop擁有多個元件這些元件都是工具,類似於軟體架構中各種工具輪子,這些元件包括: Mapreduce元件(或者更先進的spark); HDFS元件; HIVE元件; Sqoop元件; Pig分析平臺;Hbace;Yarn等
雲計算作業系統
openstack
虛擬化層
透過VMware等工具實現CPU虛擬化、記憶體虛擬化、I/O虛擬化
分散式節點機
各種廉價的透過網路連線的伺服器與儲存
雖然分了五層,但各層之間的關係是什麼,請各位觀眾老爺接著往下看:
一、頂層應用軟體為什麼要採用SOA架構
SOA與雲計算融合的會更好,SOA本身就是一種分散式的軟體架構,他的各個子系統都是松耦合並且相對獨立的,透過統一的介面連線到“資料匯流排”上進行通訊。
例如SOA(京東)裡的各個子模組,如“商品模組”、“訂單模組”、“使用者管理模組”、“訂單管理模組”可以根據計算量需求的大小彈性的部署在數量不同的伺服器節點上面。
二、 雲計算架構hadoop是什麼
他是雲計算的一個架構,那架構是啥,軟體架構(softwarearchitecture)是一系列相關的抽象模式,用於指導大型軟體系統各個方面的設計。軟體架構是一個系統的草圖。軟體架構描述的物件是直接構成系統的抽象元件。各個元件之間的連線則明確和相對細緻地描述元件之間的通訊。
具體到hadoop呢,hadoop負責接受上層應用的請求,並透過其所擁有的的各種元件工具透過openstack(或者基於openstack的雲計算作業系統)呼叫被虛擬化的底層節點機進行計算。
hadoop在雲計算中為上層的應用軟體提供各種支援,它擁有很多元件,其中的核心元件是mapreduce和hdfs。
2。1它的Mapreduce元件(或者更先進的spark)
mapreduce是分散式計算框架,MapReduce主要透過“Map(對映)”和“Reduce(合併)”這兩個函式分別完成任務的分解與結果的彙總。首先,資料自動分割為M個數據塊的集合,MAP被分發到多個節點上執行。資料塊在不同的節點上並行處理生成帶有鍵/值對(Key-value)的集合。並且此集合中的資料是經過分割槽和排序的,分割槽數量R和函式由使用者指定。Reduce呼叫也被分發到多個節點上執行,首先獲取Map階段產生的中間結果,一邊獲取一邊做Shuffle操作(獲取Map資料、合併資料、生成Reduce的輸入檔案),當Shuffle操作完成之後進行Reduce合併操作,完成任務後,MapReduce的輸出存放在R個輸出結果檔案中。
2。2 它的HDFS元件
Hadoop分散式檔案系統(HDFS)是指被設計成適合執行在通用硬體(commodityhardware)上的分散式檔案系統(DistributedFile System),HDFS有著高容錯性(fault-tolerant)的特點,並且設計用來部署在低廉的(low-cost)硬體上。而且它提供高吞吐量(highthroughput)來訪問應用程式的資料,適合那些有著超大資料集(largedata set)的應用程式。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以實現流的形式訪問(streamingaccess)檔案系統中的資料。
2。3 它的HIVE元件
hive是基於Hadoop的一個數據倉庫工具,用來進行資料提取、轉化、載入,這是一種可以儲存、查詢和分析儲存在Hadoop中的大規模資料的機制。hive資料倉庫工具能將結構化的資料檔案對映為一張資料庫表,並提供SQL查詢功能,能將SQL語句轉變成MapReduce任務來執行。
2。4 它的Sqoop元件
Sqoop(發音:skup)是一款開源的工具,主要用於在Hadoop(Hive)與傳統的資料庫(mysql、postgresql。。。)間進行資料的傳遞,可以將一個關係型資料庫(例如: MySQL ,Oracle ,Postgres等)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料導進到關係型資料庫中。
2。5 它的Pig分析平臺
是一種資料流語言和執行環境,常用於檢索和分析資料量較大的資料集。Pig包括兩部分:一是用於描述資料流的語言,稱為PigLatin;二是用於執行Pig Latin程式的執行環境。
2。6 Hbace
HBase是一個分散式的、面向列的開源資料庫,該技術來源於 Fay Chang 所撰寫的Google論文“Bigtable:一個結構化資料的分散式儲存系統”。就像Bigtable利用了Google檔案系統(File System)所提供的分散式資料儲存一樣,HBase在Hadoop之上提供了類似於Bigtable的能力。HBase是Apache的Hadoop專案的子專案。HBase不同於一般的關係資料庫,它是一個適合於非結構化資料儲存的資料庫。另一個不同的是HBase基於列的而不是基於行的模式。
2。7 Yarn元件
Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協調者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統,可為上層應用提供統一的資源管理和排程,它的引入為叢集在利用率、資源統一管理和資料共享等方面帶來了巨大好處。
三、 雲作業系統openstack
雲作業系統:可以說所有的雲作業系統都是基於openstack架構進行開發的,因此這裡只介紹openstack。
OpenStack是開源雲作業系統,可控制整個資料中心的大型計算,儲存和網路資源池。使用者能夠透過web介面、命令列或API介面配置資源。
3。1 OpenStack和虛擬化、hadoop的關係
OpenStack是虛擬化和hadoop之間的紐帶。
虛擬化提供資源,
OpenStack對外提供服務,同時也可以管理下面這些資源。
OpenStack不是虛擬化,OpenStack只是系統的控制面,OpenStack不包括系統的資料面元件,如Hypervisor、儲存和網路裝置等。
OpenStack和虛擬化有著關鍵的區別
虛擬化是OpenStack底層的技術實現手段之一,但並非核心關注點。
3。2 OpenStack的服務
分為如下幾大類:計算、儲存、網路、共用服務、 硬體生命週期、硬體生命週期、編排、工作流、應用程式生命週期、應用程式生命週期、API代理、操作介面。
OpenStack服務元件透過訊息佇列(Message Queue)相互通訊。
OpenStack元件眾多,建議重點關注計算、儲存和網路服務元件,其他服務可以在實際工作需要時再進行學習。
至於虛擬化和伺服器節點機我覺得大家都懂,就沒必要贅述了。
推薦文章
- “黃桃罐頭全是防腐劑”?別擔心,放心吃!
所以,黃桃罐頭本身不需要任何防腐劑就可以儲存很久...
- 她曾是雙性人,與貴族閃婚閃離後成為話題女王,爆料王室醜聞無數
據說她有先天性的生殖器畸形,四捨五入就是大家瞭解的雙性人,醫生建議/家人意願讓她成了喬治,但她一直覺得自己是女的並在青春期飽受煎熬,熬到21歲終於在奶奶的支援下做了整形手術,並改名喬治娜這大概是我知道貴族圈相關唯一一個這樣的例子,後續喬治娜...
- 孩子專注力不足,這幾個原因要重視,幾個專注力提高法,簡單有效
做為家長,要想幫助孩子集中注意力,就要先了解孩子注意力不能集中的原因:1. 先天原因和飲食和睡眠質量醫學證明,與自然分娩的兒童相比,剖腹產的兒童注意力不夠集中...