您現在的位置是:首頁 > 運動

openstack、hadoop、sprak、Mapreduce、HDFS、HIVE等一網打盡

由 智慧城市微設計 發表于 運動2021-10-26
簡介Yarn等雲計算作業系統openstack虛擬化層透過VMware等工具實現CPU虛擬化、記憶體虛擬化、IO虛擬化分散式節點機各種廉價的透過網路連線的伺服器與儲存雖然分了五層,但各層之間的關係是什麼,請各位觀眾老爺接著往下看:一、頂層應用軟

hadoop是資料庫嗎

小編本來是不想寫這篇文章的,因為雲計算是分散式、平行計算、網格計算、分散式儲存、虛擬化等一系列技術發展的產物,裡面的水很深,正所謂“只在此山中,雲深不知處”我們在日常工作及學習中經常聽說雲計算的隻言片語,以至於無法識其大貌。但今天我們就幹他一下,徹底弄清楚openstack、hadoop、SOA、虛擬化、Mapreduce、HDFS、HIVE、sqoop、spark之間的關係。

首先還是看圖說話。

openstack、hadoop、sprak、Mapreduce、HDFS、HIVE等一網打盡

這張圖對雲計算進行了剖析,按照這樣圖我們可以總結出各個術語所在的層次。

頂層軟體

基於面向服務的SOA架構所開發出來的松耦合應用軟體

雲計算架構

Hadoop

Hadoop擁有多個元件這些元件都是工具,類似於軟體架構中各種工具輪子,這些元件包括: Mapreduce元件(或者更先進的spark); HDFS元件; HIVE元件; Sqoop元件; Pig分析平臺;Hbace;Yarn等

雲計算作業系統

openstack

虛擬化層

透過VMware等工具實現CPU虛擬化、記憶體虛擬化、I/O虛擬化

分散式節點機

各種廉價的透過網路連線的伺服器與儲存

雖然分了五層,但各層之間的關係是什麼,請各位觀眾老爺接著往下看:

一、頂層應用軟體為什麼要採用SOA架構

SOA與雲計算融合的會更好,SOA本身就是一種分散式的軟體架構,他的各個子系統都是松耦合並且相對獨立的,透過統一的介面連線到“資料匯流排”上進行通訊。

openstack、hadoop、sprak、Mapreduce、HDFS、HIVE等一網打盡

例如SOA(京東)裡的各個子模組,如“商品模組”、“訂單模組”、“使用者管理模組”、“訂單管理模組”可以根據計算量需求的大小彈性的部署在數量不同的伺服器節點上面。

二、 雲計算架構hadoop是什麼

他是雲計算的一個架構,那架構是啥,軟體架構(softwarearchitecture)是一系列相關的抽象模式,用於指導大型軟體系統各個方面的設計。軟體架構是一個系統的草圖。軟體架構描述的物件是直接構成系統的抽象元件。各個元件之間的連線則明確和相對細緻地描述元件之間的通訊。

具體到hadoop呢,hadoop負責接受上層應用的請求,並透過其所擁有的的各種元件工具透過openstack(或者基於openstack的雲計算作業系統)呼叫被虛擬化的底層節點機進行計算。

hadoop在雲計算中為上層的應用軟體提供各種支援,它擁有很多元件,其中的核心元件是mapreduce和hdfs。

openstack、hadoop、sprak、Mapreduce、HDFS、HIVE等一網打盡

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、hadoop、sprak、Mapreduce、HDFS、HIVE等一網打盡

OpenStack不是虛擬化,OpenStack只是系統的控制面,OpenStack不包括系統的資料面元件,如Hypervisor、儲存和網路裝置等。

OpenStack和虛擬化有著關鍵的區別

虛擬化是OpenStack底層的技術實現手段之一,但並非核心關注點。

3。2 OpenStack的服務

分為如下幾大類:計算、儲存、網路、共用服務、 硬體生命週期、硬體生命週期、編排、工作流、應用程式生命週期、應用程式生命週期、API代理、操作介面。

OpenStack服務元件透過訊息佇列(Message Queue)相互通訊。

OpenStack元件眾多,建議重點關注計算、儲存和網路服務元件,其他服務可以在實際工作需要時再進行學習。

至於虛擬化和伺服器節點機我覺得大家都懂,就沒必要贅述了。

推薦文章