揭祕大數據(一)從Hadoop框架討論大數據生態

Hadoop Hortonworks 大數據 雲計算 尚硅谷 2017-06-14

Hello小夥伴們,今天開始,尚硅谷的大數據老師與大家分享大數據的相關係列知識。

相關資料可訪問尚硅谷下載:http://www.atguigu.com/opensource.shtml

從Hadoop框架討論大數據生態

1. Hadoop是什麼

1)Hadoop是一個由Apache基金會所開發的分佈式系統基礎架構

2)主要解決,海量數據的存儲和海量數據的分析問題。

3)廣義上來說,HADOOP通常是指一個更廣泛的概念——HADOOP生態圈

揭祕大數據(一)從Hadoop框架討論大數據生態

2. Hadoop發展歷史

1)Lucene--Doug Cutting開創的開源軟件,用java書寫代碼,實現與Google類似的全文搜索功能,它提供了全文檢索引擎的架構,包括完整的查詢引擎和索引引擎

2)2001年年底成為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基金會。2006 年 3 月份,Map-Reduce和Nutch Distributed File System (NDFS) 分別被納入稱為 Hadoop 的項目中

8)名字來源於Doug Cutting兒子的玩具大象

揭祕大數據(一)從Hadoop框架討論大數據生態

9)Hadoop就此誕生並迅速發展,標誌這雲計算時代來臨

3. Hadoop三大發行版本

Hadoop 三大發行版本

Apache(入門學習最好)

在企業實際使用當中,並不多

最原始(最基礎)的版本

Cloudera(企業開發用的最多的)

Flume,hue,impala

Hortonworks(文檔較好)

HDP

Hortonworks Data Platform

1)Cloudera Hadoop

(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項目。

2)Hortonworks Hadoop

(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美元。

3)版本選擇

目前最有名的發行套件是原生的Apache發行套件和Cloudera公司的CDH。

Apache——Apache HBase項目是所有HBase開發的父項目。所有代碼都集中到那裡,各個公司的開發者給他貢獻代碼。和其他開源項目一樣,版本發行週期取決於參與者(也就是僱傭開發人員從事項目開發的公司)和他們想把什麼特性放進一個特定的版本。一般來說,HBase社區和它們的版本是保持一致的。

Cloudera公司的CDH——Cloudera是一家在生態系統中有自己發行版本的公司,包括Hadoop和其他模塊(包含HBase)。這個套件被稱為CDH(Cloudera‘s distribution including Apache Hadoop)。CDH建立在Apache的代碼基礎上,採用了特殊發行版本,並在裡面添加了沒有包含在任何Apache官方發行版本中的許多補丁。Cloudera也根據客戶端需求添加額外的特性。在Apache代碼基礎裡的補丁不一定出現在CDH。

4.Hadoop的優勢

1)高可靠性 ---因為Hadoop假設計算元素和存儲會出現故障,因為它維護多個工作數據副本,在出現故障時可以對失敗的節點重新分佈處理

2)高擴展性 --- 在集群間分配任務數據,可方便的擴展數以千計的節點

3)高效性 ---在MapReduce的思想下,Hadoop是並行工作的,以加快任務處理速度

4)高容錯性 --- 自動保存多份副本數據,並且能夠自動將失敗的任務重新分配

5. Hadoop的發展趨勢及前景

由於Hadoop優勢突出,基於Hadoop的應用已經遍地開花,尤其是在互聯網領域。

(1)Yahoo:通過集群運行Hadoop,以支持廣告系統和Web搜索

(2)FaceBook:(Hive貢獻者)藉助Hadoop來支持其數據分析和機器學習

(3)淘寶:國內使用Hadoop最深入的公司,整個淘寶和阿里都是數據驅動的

(4)華為:雲計算平臺

(5)優酷:日誌分析、推薦等

(6)奇虎360:存儲軟件管家中的軟件,日誌分析和數據挖掘

(7)百度: 國內使用Hadoop最早的公司,存儲、日誌分析、推薦、機器學習等

總之,Hadoop目前已經取得了非常突出的成績,隨著互聯網的發展和新業務模式的不斷湧現,其應用已經從互聯網走向了電子商務、旅遊、房產、保險、金融、電信、銀行等領域。

6. 大數據技術生態體系

揭祕大數據(一)從Hadoop框架討論大數據生態

上圖中涉及的技術名詞解釋如下:

1)Sqoop:sqoop是一款開源的工具,主要用於在Hadoop(Hive)與傳統的數據庫(mysql)間進行數據的傳遞,可以將一個關係型數據庫(例如 : MySQL ,Oracle 等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關係型數據庫中。

2)Flume:Flume是Cloudera提供的一個高可用的,高可靠的,分佈式的海量日誌採集、聚合和傳輸的系統,Flume支持在日誌系統中定製各類數據發送方,用於收集數據;同時,Flume提供對數據進行簡單處理,並寫到各種數據接受方(可定製)的能力。

3)Kafka:Kafka是一種高吞吐量的分佈式發佈訂閱消息系統,有如下特性:

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

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

(3)支持通過Kafka服務器和消費機集群來分區消息。

(4)支持Hadoop並行數據加載。

4)Storm:Storm為分佈式實時計算提供了一組通用原語,可被用於“流處理”之中,實時處理消息並更新數據庫。這是管理隊列及工作者集群的另一種方式。 Storm也可被用於“連續計算”(continuous computation),對數據流做連續查詢,在計算時就將結果以流的形式輸出給用戶。

5)Spark:Spark是當前最流行的開源大數據內存計算框架。可以基於Hadoop上存儲的大數據進行計算。

6)Oozie:Oozie是一個管理Hdoop作業(job)的工作流程調度管理系統。Oozie協調作業就是通過時間(頻率)和有效數據觸發當前的Oozie工作流程。

7)Hbase:HBase是一個分佈式的、面向列的開源數據庫。HBase不同於一般的關係數據庫,它是一個適合於非結構化數據存儲的數據庫。

8)Hive:hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。

9)Pig:Apache Pig 是一個高級過程語言,適合於使用 Hadoop 和 MapReduce 平臺來查詢大型半結構化數據集。通過允許對分佈式數據集進行類似 SQL 的查詢,Pig 可以簡化 Hadoop 的使用。

10)R語言:R是用於統計分析、繪圖的語言和操作環境。R是屬於GNU系統的一個自由、免費、源代碼開放的軟件,它是一個用於統計計算和統計製圖的優秀工具。

11)Mahout:

Apache Mahout是個可擴展的機器學習和數據挖掘庫,當前Mahout支持主要的4個用例:

推薦挖掘:蒐集用戶動作並以此給用戶推薦可能喜歡的事物。

聚集:收集文件並進行相關文件分組。

分類:從現有的分類文檔中學習,尋找文檔中的相似特徵,併為無標籤的文檔進行正確的歸類。

頻繁項集挖掘:將一組項分組,並識別哪些個別項會經常一起出現。

12)ZooKeeper:Zookeeper是Google的Chubby一個開源的實現。它是一個針對大型分佈式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、 分佈式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。

13)Hue:Hue是一個開源的Apache Hadoop UI系統,由Cloudera Desktop演化而來,最後Cloudera公司將其貢獻給Apache基金會的Hadoop社區,它是基於Python Web框架Django實現的。通過使用Hue我們可以在瀏覽器端的Web控制檯上與Hadoop集群進行交互來分析處理數據,例如操作HDFS上的數 據,運行MapReduce Job,執行Hive的SQL語句,瀏覽HBase數據庫等等。

14)Cloudera Manager:

1)管理:對集群進行管理,如添加、刪除節點等操作。

2)監控:監控集群的健康情況,對設置的各種指標和系統運行情況進行全面監控。

3)診斷:對集群出現的問題進行診斷,對出現的問題給出建議解決方案。

4)集成:對hadoop的多組件進行整合。

7. 推薦系統框架圖

揭祕大數據(一)從Hadoop框架討論大數據生態

相關推薦

推薦中...