Hadoop 從 0 到 1 學習 ——第一章 Hadoop 介紹
文章目錄
1. 大資料概論
1.1 大資料概念
大資料 (Big Data):指無法在一定時間範圍內用常規軟體工具進行捕捉、管理和處理的資料集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的資訊資產。
大資料主要解決:海量資料的儲存和海量資料的分析計算問題。
1.2 大資料特點 (4V)
-
Volume (大量)
截止目前,人類產生的所有印刷彩禮的資料量是200PB,而歷史上全人類總共說過的話的資料量大約是5EB。當前、典型個人計算機硬碟的容量為TB量級,而一些大企業的資料量已經接近EB量級。
-
Velocity (高速)
這是大資料區分於傳統資料探勘的最顯著的特徵。根據 IDC 的 “數字宇宙” 的報告,預計到 2020 年,全球資料使用量將達到 35.2 ZB。在如此海量的資料面前,處理資料的效率就是企業的生命。
-
Variety (多樣)
這種型別的多樣性也讓資料被分為結構化資料和非結構化資料。相對於以往便於儲存的以資料庫/文字為主的結構化資料,非結構化資料越來越多,包括網路日誌、音訊、視訊、圖片、地理位置資訊等,這些多型別的資料對資料的處理能力提出了更高德要求。
-
Value (低價值密度)
價值密度的高低與資料總覽的大小成反比。如何快速對有價值資料 “提純” 成為目前大資料背景下待解決的難題。
1.3 大資料應用場景
-
物流倉儲:大資料分析系統助力商家精細化運營、提升銷售量、節約成本。
-
零售:分析使用者消費習慣,為使用者購買商品提供方便,從而提升商品銷量。
-
旅遊:深度結合大資料能力與旅遊行業需求,共建旅遊產業智慧管理、智慧服務和智慧營銷的未來。
-
商品廣告推薦:給使用者推薦可能喜歡的商品
-
保險:海量資料探勘及風險預測,助力保險行業精準營銷,提升精細化定價能力。
-
金融:多維度體現使用者特徵,幫助金融機構推薦優質客戶、防範欺詐風險。
-
房產:大資料全面助力房產行業,打造精準投策與營銷,選出更合適的地,建造更合適的樓,賣給更合適的人。
-
人工智慧
1.4 大資料部門業務流程分析
1.5 大資料部門組織結構
2. 從Hadoop框架討論大資料生態
2.1 Hadoop 是什麼
-
Hadoop 是一個由 Apache 基金會所開發的分散式系統基礎架構。
-
主要解決海量資料的儲存和海量資料的分析計算問題。
-
廣義上來說,Hadoop 通常是指一個更廣泛的概念—— Hadoop 生態圈。
2.2 Hadoop 發展歷史
-
Lucene 框架是 Doug Cutting 開創的開源軟體,用 Java 書寫程式碼,實現與 Google 類似的全文搜尋功能,它提供了全文搜尋引擎的架構,包括完整的查詢引擎和索引引擎。
-
2001 年底 Lucene 成為 Apache 基金會的一個子專案。
-
對應海量資料的場景,Lucene 面對與 Google 同樣的困難,儲存資料困難,檢索資料慢。
-
學習和模仿 Goolgle 解決這些問題的辦法:微型版 Nutch。
-
可以說 Google 是 Hadoop的思想之源 (Google 在大資料方面的三篇論文)
-
2003-2004 年,Google 公開了部分 GFS 和 MapReduce 思想的細節,以此為基礎 Doug Cutting 等人用了2年業餘時間實現了 DFS 和 MapReduce 機制,使 Nutch 效能飆升。
-
2005 年 Hadoop 作為 Lucene 的子專案 Nutch 的一部分正式引入 Apache 基金會。
-
2006 年 3 月份, Map-Reduce 和 Nutch Distrbuted File System (NDFS) 分別被納入到 Hadoop 專案中,Hadoop 就此正式誕生,標誌著大資料時代來臨。
-
名字來源於 Doung Cutting 兒子的玩具 大象,如圖:
2.3 Hadoop 三大發行版本
Hadoop三大發行版本:Apache、Cloudera、Hortonworks。
-
Apache 版本最原始(最基礎)的版本,對於入門學習最好。
-
Cloudera 在大型網際網路企業中用的較多。
-
Hortonworks 文件較好。
- Apache Hadoop
官網地址:http://hadoop.apache.org/releases.html
下載地址:https://archive.apache.org/dist/hadoop/common/
-
Cloudera Hadoop
官網地址:https://www.cloudera.com/downloads/cdh/5-10-0.html
下載地址:http://archive-primary.cloudera.com/cdh5/cdh/5/
(1)2008年成立的Cloudera是最早將Hadoop商用的公司,為合作伙伴提供Hadoop的商用解決方案,主要是包括支援、諮詢服務、培訓。
(2)2009年Hadoop的創始人 Doug Cutting 也加盟 Cloudera公司。Cloudera產品主要為CDH,Cloudera Manager,Cloudera Support
(3)CDH是Cloudera的Hadoop發行版,完全開源,比Apache Hadoop在相容性,安全性,穩定性上有所增強。
(4)Cloudera Manager是叢集的軟體分發及管理監控平臺,可以在幾個小時內部署好一個Hadoop叢集,並對叢集的節點及服務進行實時監控。Cloudera Support即是對Hadoop的技術支援。
(5)Cloudera的標價為每年每個節點4000美元。Cloudera開發並貢獻了可實時處理大資料的Impala專案。
-
Hortonworks Hadoop
官網地址:https://hortonworks.com/products/data-center/hdp/
下載地址:https://hortonworks.com/downloads/#data-platform
(1)2011年成立的Hortonworks是雅虎與矽谷風投公司Benchmark Capital合資組建。
(2)公司成立之初就吸納了大約 25 名至 30 名專門研究 Hadoop 的雅虎工程師,上述工程師均在 2005 年開始協助雅虎開發 Hadoop,貢獻了 Hadoop80% 的程式碼。
(3)雅虎工程副總裁、雅虎Hadoop開發團隊負責人Eric Baldeschwieler出任Hortonworks的執行長。
(4)Hortonworks的主打產品是Hortonworks Data Platform(HDP),也同樣是100%開源的產品,HDP除常見的專案外還包括了Ambari,一款開源的安裝和管理系統。
(5)HCatalog,一個後設資料管理系統,HCatalog現已整合到Facebook開源的Hive中。Hortonworks的Stinger開創性的極大的優化了Hive專案。Hortonworks為入門提供了一個非常好的,易於使用的沙盒。
(6)Hortonworks開發了很多增強特性並提交至核心主幹,這使得Apache Hadoop能夠在包括Window Server和Windows Azure在內的Microsoft Windows平臺上本地執行。定價以叢集為基礎,每10個節點每年為12500美元。
2.4 Hadoop的優勢(4高)
Hadoop1.x 和 Hadoop2.x 區別
在 Hadoop1.x 時代,Hadoop 中的 MapReduce 同時處理業務邏輯運算和資源的排程,耦合性較大,在 Hadoop2.x 時代,增加了 Yarn。Yarn 只負責資源的排程, MapReduce 只負責運算。
3. Hadoop 組成(面試重點)
3.1 HDFS 架構概述
-
NameNode (nm):儲存檔案的後設資料,如:檔名、檔案目錄、檔案屬性(生成時間、副本數、檔案許可權),以及每個檔案的塊列表和塊輸在的 DataNode 位置等。
-
DataNode (dn):在本地檔案系統儲存檔案塊的資料,以及塊資料的校驗。
- Secondary NameNode (2nn):用來監控 HDFS 狀態的輔助後臺程式,每隔一段時間獲取 HDFS 後設資料的快照。
3.2 YARN 架構概述
3.3 MapReduce 架構概述
MapReduce 將計算過程分為兩個階段:Map 和 Reduce。
- Map 階段並行處理輸入資料。
- Reduce 階段對 Map 結果進行彙總。
4. 大資料技術生態體系
圖中涉及的技術名詞解釋如下:
-
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的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。
5. 推薦系統框架圖
相關文章
- hadoop叢集篇--從0到1搭建hadoop叢集Hadoop
- Flink 從 0 到 1 學習 —— 第一章 Flink 簡介
- Hadoop日記Day1---Hadoop介紹Hadoop
- Hadoop介紹Hadoop
- Hadoop學習筆記——————1、Hadoop概述Hadoop筆記
- 從0開始學習Hadoop(2)安裝JDKHadoopJDK
- Hadoop Hive介紹HadoopHive
- hadoop家族介紹Hadoop
- 學習seo如何從0到1
- gtest學習教程(從0到1)
- Hadoop Sqoop介紹Hadoop
- [hadoop]hadoop學習路線Hadoop
- Python從0到1的學習之道Python
- 從零自學Hadoop(19):HBase介紹及安裝Hadoop
- 從零自學Hadoop(23):Impala介紹及安裝Hadoop
- 從零自學Hadoop(14):Hive介紹及安裝HadoopHive
- Hadoop學習Hadoop
- 從0開始學習Hadoop(2)安裝JDK以及設定SSHHadoopJDK
- hadoop1.X學習筆記Hadoop筆記
- Hadoop進階命令使用介紹Hadoop
- Hadoop-HA節點介紹Hadoop
- [Hadoop]chukwa的簡單介紹Hadoop
- Hadoop生態系統介紹Hadoop
- 保姆級教程,帶你認識大資料,從0到1搭建 Hadoop 叢集大資料Hadoop
- 從零自學Hadoop(10):Hadoop1.x與Hadoop2.xHadoop
- 從0到1使用Kubernetes系列(二)——安裝工具介紹
- 從0開始學習Hadoop(1) 環境準備 Win7環境+VirtureBox+UbuntuHadoopWin7Ubuntu
- Hadoop學習——MapReduceHadoop
- 如何學習HadoopHadoop
- Hadoop家族產品學習線路圖和簡單產品介紹Hadoop
- hadoop學習筆記(十)——hadoop + hbase + zookeeperHadoop筆記
- 第一章:Hadoop生態系統及執行MapReduce任務介紹!Hadoop
- Hadoop MapReduce架構簡介(初學學習不錯)Hadoop架構
- hadoop 學習筆記Hadoop筆記
- hadoop學習記錄Hadoop
- Flink 從 0 到 1 學習 —— 如何自定義 Data Sink ?
- 《從0到1學習Flink》—— 如何自定義 Data Source ?
- Hadoop2.6.0子專案hadoop-mapreduce-examples的簡單介紹Hadoop