萬億數據下Hadoop的核心競爭力

1.前言

在大數據時代,Hadoop有着得天獨厚的優點。然而,每一個企業的技術儲備和需求特色不一樣,他們但願從海量的客戶數據中挖掘真正的商業價值,像Google、Facebook、Twitter等這樣的企業更是Hadoop的最先獲益者。那麼,今天咱們就來聊一聊,萬億數據下Hadoop的核心競爭力。html

2.什麼是Hadoop?

在瞭解Hadoop以前,不得不說的一個名詞——「大數據」。大數據是時代發展和技術進步的產物,大數據的特徵以下:算法

  • 龐大的數據容量;
  • 結構化、半結構化、非結構化的數據類型;
  • 高效的處理速度
  • 高質量的數據

Hadoop由Apache基金會孵化並開源的分佈式系統,用戶能夠在不瞭解分佈式底層設計的狀況下,開發分佈式應用程序,充分利用集羣的優點來進行高速的運算和存儲。自從Hadoop做爲Apache基金會開源項目發佈以來,它一直備受青睞,這得益於Hadoop的可擴展性、低成本、靈活的處理模式等特色。數據庫

3.萬億數據下的難點?

數據量達到萬億規模,這已是一個很龐大的數據量了。這裏難點咱們能夠分爲兩種狀況,一種是原理上不知道怎麼處理,沒有具體的實施方案,這個屬於技術難題。另外一種,雖然有具體的實施方案,也明白其中的原理,可是數據規模太過龐大,這個屬於工程上的難點。安全

數據規模龐大帶來的難點主要體如今分佈式的要求,由於單個節點不足以在有效的成本和規定的時間內處理完全部的數據。簡而言之:服務器

  • 並行化問題:處理數據的應用程序要改形成適合並行的方式;
  • 資源分配管理問題:如何有效的管理提交任務的資源,內存、網絡、磁盤等;
  • 容錯問題:隨着機器數量的增長,可靠性如何保證,例如部分機器硬件出錯致使不可用,最終結果的完整性和正確性如何保證。

4.Hadoop的組成部分有哪些?能作什麼?

截止至本篇文章,Hadoop社區發佈了Hadoop-3.2.0版本,其核心組成部分包含:基礎公共庫(Common)、分佈式文件存儲系統(HDFS)、分佈式計算框架(MapReduce)、分佈式資源調度與管理系統(YARN)、分佈式對象存儲框架(OZone)、機器學習引擎(Submarine)。網絡

4.1 Hadoop Common

Hadoop Common屬於基礎公共庫,它是Hadoop最底層的一個模塊,爲Hadoop各個子項目提供各類工具,例如配置文件、操做日誌等。框架

4.2 Hadoop Distributed File System

Hadoop Distributed File System簡稱HDFS,它是Hadoop的一個分佈式文件系統,相似於Amazon的S3系統,Google的GFS系統。機器學習

HDFS能夠處理分佈在集羣中的大文件,它經過將文件分紅數據塊來完成此操做。同時,咱們能夠並行訪問分佈式數據(例如,在進行數據處理時),各個數據節點進行數據交互造成數據塊的副本。分佈式

 

4.3 Hadoop YARN

YARN是Hadoop的一個分佈式資源管理框架,能夠爲上層應用提供統一的資源管理與調度。經過引入YARN,Hadoop集羣在資源利用率、資源統一管理、數據共享等方面帶來了巨大的好處。工具

Client應用提交任務到YARN,流程以下:

  1. Client發送請求給RM
  2. ResourceManager(簡稱RM)返回ApplicationId給Client
  3. Client發送ApplicationId、QueueName、用戶等信息給RM
  4. RM尋找合適的Container,並將Client提交的信息給NodeManager(簡稱NM)
  5. 而後在NM中啓動AM,RM給AM分配最大最小資源
  6. AM從RM那裏獲取的可以使用資源來申請一些Container
  7. Job在Container中執行,由AM返回任務進度,任務執行完成後,AM向RM發送結束任務信息而後退出

4.4 Hadoop MapReduce

MapReduce是Hadoop的一個分佈式計算框架,用來處理海量數據。同時,還可使用MapReduce框架來實現一些算法,例如統計單詞頻率、數據去重、排序、分組等。

4.5 Hadoop OZone

Ozone是Hadoop的可擴展、冗餘和分佈式對象存儲。除了擴展到數十億不一樣大小的對象外,OZone還能在Kubernetes和YARN等容器環境中有效發揮做用。

  • 可擴展性:OZone設計之初可以擴展到數百億個文件和數據塊,而且在未來會擴展到更多;
  • 一致性:OZone是一個強一致性對象存儲,它所使用的協議是相似於RAFT來實現的;
  • 雲集成:OZone設計之初可以與YARN和Kubernetes集成使用;
  • 安全性:OZone可以與Kerberos集成,用於控制訪問權限,並支持TDE和線上加密;
  • 多協議支持:OZone可以支持不一樣的協議,例如S三、HDFS;
  • 高可用:OZone是一個多副本系統,用於保證數據高可用性。

4.6 Hadoop Submarine

Submarine是一個容許基礎設施工程師/數據科學家在資源管理平臺(如YARN)上運行深度學習應用程序(Tensorflow,Pytorch等)的項目。

  • 在已有集羣運行:Submarine支持在YARN、Kubernetes或者其餘相似的調度框架中使用;
  • 支持多種框架:Submarine支持多種機器學習框架,例如TensorFlow、Pytorch、MxNet等;
  • 覆蓋整個ML:Submarine不只僅是一個機器學習引擎,它涵蓋了整個機器學習過程,例如算法開發、模型批量訓練、模型增量訓練、模型在線服務和模型管理。

5.Hadoop的核心競爭力在哪?

Hadoop如此受人喜歡,很大程度上取決於用戶對大數據存儲、管理和分析需求的迫切。大數據是目前不少企業面臨的一個挑戰,因爲數據量的龐大、數據類型的複雜 ,特別是非結構化或者半結構化的數據遠遠多於結構化的數據,一些傳統的基於關係型數據庫的存儲和分析難以知足時,且關係型數據庫巨大成本壓力也是不少企業考慮的問題,而Hadoop給人們提供瞭解決大數據問題的技術手段。

大數據時代須要Hadoop,那麼Hadoop的核心競爭力在哪呢?

5.1 下降大數據成本

Hadoop使企業能夠高效的管理數據,以下降數據成本,其中包含業務成本、硬件成本、人工成本、存儲成本等。經過易用性、權威性、時效性等特性,Hadoop還能夠幫助用戶增長數據價值。目前Hadoop社區的支持,以及各大Hadoop廠商的支持,使得Hadoop從一個單獨的開源軟件逐步演變成一個具備必定規模的生態系統,這些廠商包含Cloudera、MapR、Hortonworks等,他們在這一輩子態系統中扮演着不一樣的角色,例若有系統廠商、監控服務商、數據分析商等。

而使用者能夠從這些廠商中提供的系統來簡化Hadoop的學習成本,快速構建符合自身要求的大數據平臺,同時合理利用廠商提供的附屬組件來開發出高效、易用的的大數據應用。

5.2 成熟的Hadoop生態圈

Hadoop不是一個「孤島」系統,它擁有成熟的Hadoop生態圈。

利用Hadoop生態圈設計知足自身需求的方案,須要考慮一些關鍵要素:

  1. 從需求的最終結果開始分析,而不是從可用的工具開始。例如,可用性、一致性等;
  2. 對數據處理時效性的評估,例如離線任務(MapReduce、Hive)、實時任務(Flink、Spark Streaming);
  3. 儘量使用成熟的方案。

1.案例一:獲取最後一小時的熱門連接

將熱門連接集中收集,使用Flume將連接發送到Kafka,而後使用Flink或者Spark Streaming計算引擎在1小時的窗口內分析數據,最後將計算後的結果寫入到HBase進行存儲。

2.案例二:爲用戶推薦電影

這是一個實時場景,用戶喜歡電影,那麼用戶應當即看到相關電影。

解決思路:每次用戶給出評級時,計算建議都是包含權重的,所以咱們應該按期根據現有用戶行爲計算建議。根據對用戶行爲的理解,能夠爲給定用戶預測全部電影的推薦,而後對其進行排序,並過濾用戶已經開過的內容。

組件選取:數據庫可使用NoSQL數據庫,例如HBase。來存儲用戶評級。計算引擎方面能夠選擇Flink或者Spark ML經過Oozie定時調度來從新計算用戶電影推薦。而後,使用Flume和Spark Streaming用於流式傳輸和處理實時用戶行爲。

工做流程:Web服務器將用戶評級發送給Flume,後者將其傳遞給Spark Streaming,而後將結果保存到HBase中。接着,使用Oozie定時調度執行Spark ML應用來從新計算電影推薦並將結果保存到HBase中。

6.是否必定要選擇Hadoop?

與傳統數據庫系統相比較,開源的Hadoop有本身的優點。尤爲是Hadoop既能處理關係型數據庫中的結構化數據,也能處理視頻、音頻、圖片等非結構化數據。而且Hadoop還可以根據數據的規模和問題的複雜度輕鬆的擴展。那是否是必定要用Hadoop?

每一個企業都有本身的特殊需求,都有本身的技能棧,若是已經購買了成熟的數據庫產品,沒有必要捨棄這些產品,要確保對Hadoop足夠的瞭解,不要盲目的「跟風」。

然而,Hadoop是解決大數據的一種技術手段,這個是一個趨勢,例如Hadoop與AI、IoT等領域的結合使用。瞭解和掌握Hadoop是有所必要的,能夠從一些小的項目嘗試積累更多經驗。

7.結束語

這篇博客就和你們分享到這裏,若是你們在研究學習的過程中有什麼問題,能夠加羣進行討論或發送郵件給我,我會盡我所能爲您解答,與君共勉!

另外,博主出書了《Kafka並不難學》和《Hadoop大數據挖掘從入門到進階實戰》,喜歡的朋友或同窗, 能夠在公告欄那裏點擊購買連接購買博主的書進行學習,在此感謝你們的支持。關注下面公衆號,根據提示,可免費獲取書籍的教學視頻。

相關文章
相關標籤/搜索