什麼是Hadoop?大數據與Hadoop簡介

要了解什麼是Hadoop,我們必須首先了解與大數據和傳統處理系統有關的問題。前進,我們將討論什麼是Hadoop,以及Hadoop如何解決與大數據相關的問題。我們還將研究CERN案例研究,以突出使用Hadoop的好處。

在之前的博客“  大數據教程”中,我們已經詳細討論了大數據以及大數據的挑戰。在此博客中,我們將討論:

大數據正在成爲組織的機會。現在,組織已經意識到,大數據分析可以爲他們帶來很多好處,如下圖所示。他們正在檢查大型數據集,以發現所有隱藏的模式,未知的相關性,市場趨勢,客戶偏好和其他有用的業務信息。

這些分析結果正在幫助組織進行更有效的營銷,新的收入機會,更好的客戶服務。他們正在提高運營效率,與競爭對手組織相比的競爭優勢以及其他業務利益。 

圖片什麼是Hadoop –大數據分析的好處

因此,讓我們繼續前進,瞭解在兌現大數據機會方面與傳統方法相關的問題。

傳統方法的問題 

在傳統方法中,主要問題是處理數據的異構性,即結構化,半結構化和非結構化。RDBMS主要關注諸如銀行交易,運營數據等結構化數據,而Hadoop則專注於文本,視頻,音頻,Facebook帖子,日誌等半結構化,非結構化數據。RDBMS技術是一種經過驗證的,高度一致,成熟的系統許多公司的支持。另一方面,由於大數據(主要由不同格式的非結構化數據組成)對Hadoop造成了需求。

現在讓我們瞭解與大數據相關的主要問題是什麼。因此,繼續前進,我們可以瞭解Hadoop是如何成爲解決方案的。

 

 

圖片什麼是Hadoop –大數據問題

第一個問題是存儲大量數據。

無法在傳統系統中存儲大量數據。原因很明顯,存儲將僅限於一個系統,並且數據正在以驚人的速度增長。

第二個問題是存儲異構數據。

現在,我們知道存儲是一個問題,但是讓我告訴您,這只是問題的一部分。由於我們討論了數據不僅龐大,而且還以各種格式存在,例如:非結構化,半結構化和結構化。因此,您需要確保您擁有一個系統來存儲從各種來源生成的所有這些種類的數據。

第三個問題是訪問和處理速度。 

硬盤容量正在增加,但磁盤傳輸速度或訪問速度並未以相似的速度增加。讓我用一個示例向您解釋一下:如果您只有一個100 Mbps I / O通道,並且正在處理1TB數據,則大約需要2.91個小時。現在,如果您有四臺具有一個I / O通道的計算機,則對於相同數量的數據,大約需要43分鐘。因此,與存儲大數據相比,訪問和處理速度是更大的問題。

在瞭解什麼是Hadoop之前,讓我們首先了解一下Hadoop在一段時間內的發展。

 

Hadoop的演變


2003年,道格·切特(Doug Cutting)啓動了Nutch項目,以處理數十億次搜索併爲數百萬個網頁建立索引。2003年10月下旬– Google發佈帶有GFS(Google文件系統)的論文。Google在2004年12月發佈了MapReduce論文。在2005年,Nutch使用GFS和MapReduce進行操作。2006年,雅虎與Doug Cutting及其團隊合作,基於GFS和MapReduce創建了Hadoop。如果我告訴您,您會感到驚訝,2007年Yahoo開始在1000個節點的羣集上使用Hadoop。

在2008年1月下旬,雅虎將Hadoop作爲開源項目發佈給Apache Software Foundation。2008年7月,Apache通過Hadoop成功測試了4000個節點的集羣。2009年,Hadoop在不到17小時的時間內成功整理了PB級數據,以處理數十億次搜索併爲數百萬個網頁建立索引。在2011年12月,Apache Hadoop發佈了1.0版。2013年8月下旬,發佈了2.0.6版。

在討論這些問題時,我們發現分佈式系統可以作爲解決方案,而Hadoop提供了相同的解決方案。現在,讓我們瞭解什麼是Hadoop。

什麼是Hadoop?

Hadoop是一個框架,它允許您首先將大數據存儲在分佈式環境中,以便可以並行處理它。 Hadoop中基本上有兩個組件:

 

圖:什麼是Hadoop – Hadoop框架

第一個是用於存儲的HDFS(Hadoop分佈式文件系統),它使您可以在集羣中存儲各種格式的數據。第二個是YARN,用於Hadoop中的資源管理。它允許對數據進行並行處理,即跨HDFS存儲。

什麼是Hadoop | Hadoop簡介| Hadoop培訓| 埃杜雷卡

 

讓我們首先了解HDFS。

HDFS

HDFS創建一個抽象,讓我爲您簡化一下。與虛擬化類似,您可以在邏輯上將HDFS視爲用於存儲大數據的單個單元,但實際上您是在分佈式方式下跨多個節點存儲數據。HDFS遵循主從架構。

 

圖片什麼是Hadoop – HDFS

在HDFS中,名稱節點是主節點,數據節點是從節點。 Namenode包含有關存儲在Data節點中的數據的元數據,例如哪個數據塊存儲在哪個數據節點中,數據塊的複製在哪裏等  。實際數據存儲在Data Nodes中。

我還想補充一點,實際上我們複製了數據節點中存在的數據塊,默認複製因子爲3。  由於我們使用的是商用硬件,並且我們知道這些硬件的故障率很高,所以如果其中一個DataNodes失敗,HDFS將仍然具有那些丟失的數據塊的副本。 您還可以根據需要配置複製因子。您可以閱讀HDFS教程,詳細瞭解HDFS。  

 

Hadoop即解決方案

讓我們瞭解Hadoop如何爲剛剛討論的大數據問題提供解決方案。

 

圖:什麼是Hadoop – Hadoop即解決方案

第一個問題是存儲大數據

HDFS提供了一種分佈式的方式來存儲大數據。您的數據存儲在整個DataNode的塊中,您可以指定塊的大小。基本上,如果您擁有512MB的數據並且已經配置了HDFS,那麼它將創建128MB的數據塊。 因此,HDFS將數據分爲512/128 = 4的4個塊,並將其存儲在不同的DataNode上,還將在不同的DataNode上覆制數據塊。現在,由於我們正在使用商品硬件,因此存儲已不是難題。

它還解決了縮放問題。它專注於水平縮放而不是垂直縮放。您始終可以根據需要隨時在HDFS羣集中添加一些額外的數據節點,而不用擴大DataNodes的資源。讓我爲您總結一下,基本上是爲了存儲1 TB的數據,您不需要1 TB的系統。您可以在多個128GB甚至更少的系統上執行此操作。

下一個問題是存儲各種數據

藉助HDFS,您可以存儲各種數據,無論是結構化,半結構化還是非結構化。由於在HDFS中,沒有預轉儲模式驗證。並且它也遵循一次寫入和多次讀取模型。因此,您只需寫入一次數據,就可以多次讀取數據以查找見解。

Ť Hird的挑戰是訪問和處理數據更快

是的,這是大數據的主要挑戰之一。爲了解決該問題,我們將處理移至數據,而不是將數據移至處理。這是什麼意思?而不是將數據移動到主節點然後進行處理。在MapReduce中,處理邏輯被髮送到各個從屬節點,然後在不同的從屬節點之間並行處理數據。然後,將處理後的結果發送到主節點,在主節點上將結果合併,並將響應發送回客戶端。

在YARN架構中,我們有ResourceManager和NodeManager。ResourceManager可能與NameNode不在同一臺計算機上配置。 但是,應該將NodeManager配置在存在DataNode的同一臺計算機上。

YARN通過分配資源和安排任務來執行您的所有處理活動。

 

圖:什麼是Hadoop – YARN

它具有兩個主要組件,即ResourceManager和NodeManager。

ResourceManager再次是主節點。它接收處理請求,然後將請求的各個部分相應地傳遞到相應的NodeManager,在此進行實際處理。NodeManager安裝在每個DataNode上。它負責在每個單個DataNode上執行任務。

我希望現在您對什麼是Hadoop及其主要組件有所瞭解。讓我們繼續前進,瞭解何時使用和何時不使用Hadoop。 

何時使用Hadoop? 

Hadoop用於:

  • 搜索 – Yahoo,亞馬遜,Zvents
  • 日誌處理 – Facebook,雅虎
  • 數據倉庫 – Facebook,AOL
  • 視頻和圖像分析 –紐約時報,Eyealike

到目前爲止,我們已經瞭解了Hadoop如何使大數據處理成爲可能。但是在某些情況下,不建議使用Hadoop。

什麼時候不使用Hadoop?

以下是其中一些方案:

  • 低延遲數據訪問:快速訪問少量數據
  • 多種數據修改:僅當我們主要關注讀取數據而不修改數據時,Hadoop纔是更好的選擇。
  • 小文件很多:Hadoop適用於少量文件但又大文件的情況。

在瞭解最合適的用例之後,讓我們繼續研究Hadoop創造奇蹟的案例研究。

Hadoop-CERN案例研究

瑞士的大型強子對撞機是世界上最大,功能最強大的機器之一。它配備了約1.5億個傳感器,每秒產生PB的數據,並且數據在不斷增長。

歐洲核子研究組織(CERN)的研究表明,這些數據的數量和複雜性一直在擴大,其中一項重要任務是滿足這些可擴展的需求。因此,他們設置了Hadoop集羣。通過使用Hadoop,他們限制了硬件成本和維護複雜性。

他們整合了Oracle和Hadoop,並獲得了整合的優勢 Oracle優化了其在線交易系統和Hadoop,爲其提供了可擴展的分佈式數據處理平臺。 他們設計了一個混合系統,首先將數據從Oracle遷移到Hadoop。然後,他們使用Oracle API對來自Oracle的Hadoop數據執行查詢。他們還使用諸如 Avro Parquet之類的Hadoop數據格式進行高性能分析,而無需更改連接到Oracle的最終用戶應用程序。

他們在CERN-IT Hadoop服務上使用的主要Hadoop組件:

您可以在Hadoop生態系統博客中瞭解每個工具。 

集成Oracle和Hadoop的技術:

  • 將數據從Oracle導出到HDFS

Sqoop在大多數情況下都足夠好,他們還採用了其他一些可能的選項,例如自定義提取,Oracle DataPump,流式傳輸等。

  • 從Oracle查詢Hadoop

他們使用Oracle中的數據庫鏈接訪問了Hadoop引擎中的表。通過透明地組合Oracle和Hadoop中的數據,還可以構建混合視圖。

  • 使用Hadoop框架處理Oracle數據庫中的數據

他們使用Hadoop引擎(例如Impala,Spark)來處理從Oracle導出的數據,然後直接從具有JDBC的Spark SQL讀取RDBMS中的數據。

從Oracle卸載到Hadoop

第1步:將數據卸載到Hadoop

步驟2:將查詢卸載到Hadoop

步驟3:從Oracle查詢訪問Hadoop

  • 使用數據庫鏈接從Oracle查詢Apache Hive / Impala表
1個
2
3
create database link my_hadoop using 'impala-gateway';
 
select * from big_table@my_hadoop where col1= :val1;
  • 通過ODBC網關將查詢分載到Impala(或Hive)

在oracle上創建混合視圖的示例

1個
2
3
4
5
6
7
create view hybrid_view as
 
          select * from online_table where date > '2016-10-01'
 
          union all
 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select * from archive_table@hadoop where date <= '2016-10-01'

根據CERN的案例研究,我們可以得出以下結論:

  • Hadoop具有可伸縮性,非常適合大數據分析
  • Oracle已證明可用於併發事務性工作負載
  • 解決方案可用於集成Oracle和Hadoop
  • 使用混合系統(Oracle + Hadoop)具有巨大的價值:
    • 適用於舊版應用程序和OLTP工作負載的Oracle API
    • 用於分析工作負載的商品硬件的可伸縮性

我希望該博客能爲您提供豐富的信息,併爲您的知識增添價值。在我們的Hadoop教程系列的下一個博客(即Hadoop教程)中,我們將更詳細地討論Hadoop,並詳細瞭解HDFS和YARN組件的任務。

 

現在您已經瞭解了什麼是Hadoop,請查看Edureka 的Hadoop培訓,Edureka是一家受信任的在線學習公司,其網絡遍佈全球,共有25萬名滿意的學習者。Edureka大數據Hadoop認證培訓課程使用零售,社交媒體,航空,旅遊,金融領域的實時用例,幫助學習者成爲HDFS,Yarn,MapReduce,Pig,Hive,HBase,Oozie,Flume和Sqoop的專家。

有問題要問我們嗎?請在評論部分中提及它,我們將盡快與您聯繫。

發佈了382 篇原創文章 · 獲贊 132 · 訪問量 66萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章