天天看點

大資料之Hadoop(一)-Hadoop入門1、 Hadoop基本介紹2、Hadoop的組成3、大資料技術生态體系4、大資料部門業務流程分析5、大資料部門組織結構

1、 Hadoop基本介紹

1.1Hadoop是什麼

  • Hadoop是一個由Apache基金會所開發的分布式系統基礎架構
  • 主要解決,海量資料的存儲和海量資料的分析計算問題
  • 廣義上來說,Hadoop通常是指一個更廣泛的概念——Hadoop生态圈
    大資料之Hadoop(一)-Hadoop入門1、 Hadoop基本介紹2、Hadoop的組成3、大資料技術生态體系4、大資料部門業務流程分析5、大資料部門組織結構

1.2Hadoop發展史

1、Lucene架構是Doug Cutting(Hadoop創始人) 開創的開源軟體,用Java寫的,實作與Google類似的全文搜尋功能,它提供了全文檢索引擎的架構,包括完整的查詢引擎和索引引擎

2、2001年年底Lucene成為了Apache基金會的一個子項目

3、對于海量資料的場景,Lucene面對與Google同樣的困難,存儲資料困難,檢索速度慢

4、學習和模仿Google解決了這些問題:建立了微型版的Nutch

5、可以說Google是Hadoop的思想之源(Google在大資料方面的三篇論文)

  • GFS——>HDFS
  • Map-Reduce——>MR
  • BigTable——>HBase

    6、2003-2004年,Google公開了部分GFS和MapReduce思想的細節,以此為基礎Doug Cutting等人用了2年業餘時間實作了DFS和MapReduce·機制,使得Nutch

    性能飙升

    7、2005年Hadoop作為Lucene的子項目,Nutch的一部分正式引入Apache基金會

    8、2006年3月份,Map-Reduce和Nutch Distnbuted File System(NDFS)分别被納入Hadoop項目中,Hadoop就此正式誕生,标志着大資料時代來臨

1.3Hadoop的優勢(4高)

  1. 高可靠性:Hadoop底層維護多個資料副本,是以即使Hadoop某個計算元素或存儲出現故障,也不會導緻資料的丢失
  2. 高擴充性:在叢集間配置設定任務資料,可以友善的擴充數以千計的節點
  3. 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任務處理速度
  4. 高容錯性:能夠自動将失敗的任務重新配置設定

2、Hadoop的組成

2.1Hadoop1.x和Hadoop2.x的差別

大資料之Hadoop(一)-Hadoop入門1、 Hadoop基本介紹2、Hadoop的組成3、大資料技術生态體系4、大資料部門業務流程分析5、大資料部門組織結構

2.2HDFS架構

  1. NameNode(nn):存儲檔案的中繼資料,如檔案名,檔案目錄結構,檔案屬性(生成時間,副本數、檔案權限),以及每個檔案的塊清單和塊所在的DataNode等
  2. DataNode(dn):在本地檔案系統存儲檔案塊資料,以及塊資料的校驗和
  3. Secondary NameNode(2nn):用來監控HDFS狀态的輔助背景程式,每隔一段時間擷取HDFS中繼資料的快照

2.3YARN架構

大資料之Hadoop(一)-Hadoop入門1、 Hadoop基本介紹2、Hadoop的組成3、大資料技術生态體系4、大資料部門業務流程分析5、大資料部門組織結構

2.4MapReduce架構

MapReduce将計算過程分為兩個階段:Map和Reduce

  1. Map階段:并行處理輸入資料
  2. Reduce階段:對Map結果進行彙總
大資料之Hadoop(一)-Hadoop入門1、 Hadoop基本介紹2、Hadoop的組成3、大資料技術生态體系4、大資料部門業務流程分析5、大資料部門組織結構

3、大資料技術生态體系

大資料之Hadoop(一)-Hadoop入門1、 Hadoop基本介紹2、Hadoop的組成3、大資料技術生态體系4、大資料部門業務流程分析5、大資料部門組織結構
  • Sqoop:Sqoop是一款開源的工具,主要用于在Hadoop、Hive與傳統的資料庫(MySql)間進行資料的傳遞,可以将一個關系型資料庫(例如 :MySQL,Oracle 等)中的資料導進到Hadoop的HDFS中,也可以将HDFS的資料導進到關系型資料庫中。
  • Flume:Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統,Flume支援在日志系統中定制各類資料發送方,用于收集資料;同時,Flume提供對資料進行簡單處理,并寫到各種資料接受方(可定制)的能力。
  • Kafka:Kafka是一種高吞吐量的分布式釋出訂閱消息系統,有如下特性:

    (1)通過O(1)的磁盤資料結構提供消息的持久化,這種結構對于即使數以TB的消息存儲也能夠保持長時間的穩定性能。

    (2)高吞吐量:即使是非常普通的硬體Kafka也可以支援每秒數百萬的消息。

    (3)支援通過Kafka伺服器和消費機叢集來分區消息。

    (4)支援Hadoop并行資料加載。

  • Storm:Storm用于“連續計算”,對資料流做連續查詢,在計算時就将結果以流的形式輸出給使用者。
  • Spark:Spark是目前最流行的開源大資料記憶體計算架構。可以基于Hadoop上存儲的大資料進行計算。
  • Oozie:Oozie是一個管理Hdoop作業(job)的工作流程排程管理系統。
  • Hbase:HBase是一個分布式的、面向列的開源資料庫。HBase不同于一般的關系資料庫,它是一個适合于非結構化資料存儲的資料庫。
  • Hive:Hive是基于Hadoop的一個資料倉庫工具,可以将結構化的資料檔案映射為一張資料庫表,并提供簡單的SQL查詢功能,可以将SQL語句轉換為MapReduce任務進行運作。 其優點是學習成本低,可以通過類SQL語句快速實作簡單的MapReduce統計,不必開發專門的MapReduce應用,十分适合資料倉庫的統計分析。
  • R語言:R是用于統計分析、繪圖的語言和操作環境。R是屬于GNU系統的一個自由、免費、源代碼開放的軟體,它是一個用于統計計算和統計制圖的優秀工具。
  • Mahout:Apache Mahout是個可擴充的機器學習和資料挖掘庫。
  • ZooKeeper:Zookeeper是Google的Chubby一個開源的實作。它是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、 分布式同步、組服務等。ZooKeeper的目标就是封裝好複雜易出錯的關鍵服務,将簡單易用的接口和性能高效、功能穩定的系統提供給使用者。

比如:下圖為一個推薦系統項目架構

大資料之Hadoop(一)-Hadoop入門1、 Hadoop基本介紹2、Hadoop的組成3、大資料技術生态體系4、大資料部門業務流程分析5、大資料部門組織結構

4、大資料部門業務流程分析

大資料之Hadoop(一)-Hadoop入門1、 Hadoop基本介紹2、Hadoop的組成3、大資料技術生态體系4、大資料部門業務流程分析5、大資料部門組織結構

5、大資料部門組織結構

大資料之Hadoop(一)-Hadoop入門1、 Hadoop基本介紹2、Hadoop的組成3、大資料技術生态體系4、大資料部門業務流程分析5、大資料部門組織結構

繼續閱讀