大資料概念和Hadoop基本介紹
開始學習大資料,一步一個腳印,好好堅持下去!
大資料概述
1.大資料特徵
第一個,volume(量),大資料第一個基礎是它的資料量要大;
第二個,velocity(速度),大資料一個很重要的它必須是實時產生的,一個兩年以前很大的資料,在今天的時代裡面是不能夠被稱之為大資料的;
第三個,variety(多樣性),很多企業其實只擁有一類資料,但需要明白大資料的根本是需要多樣性;
第四個,veracit(不確定性),我們過去熟悉的資料都是確定的,一個消費者的名字、年齡、收入,地址等等,這些都屬於關係型資料;但在大資料裡面,所有的資料是無序的,不可確定。
2.大資料涉及到的技術
(1).資料採集
(2)資料儲存
(3)資料處理
(4)視覺化
3.大資料在技術架構上帶來的挑戰
(1)對現有資料庫管理技術的挑戰
(2)對經典資料庫技術並沒有考慮資料的多類別
(3)實時性的技術挑戰
(4)網路架構,資料中心,運維的挑戰
(5)其他包括。資料隱私,資料來源發雜多樣
4.如何對大資料進行儲存和分析
Google中的設計到的東西只有論文沒有開源,相反hadoop開源,並且實現了相對的技術!
5. 如何學好大資料
(1)官網、官網、官網
(2)專案實戰對知識點進行鞏固和融會貫通
(3)社群活動:Meetup、開源社群大會、線下沙龍等
(4)多動手、多聯絡、貴在堅持
初識Hadoop
官網:Hadoop.apache.org
1. Hadoop概述
(1)名字由來
Hadoop專案作者的孩子給一個棕黃色的大象樣子的填充玩具的命名。
(2)Hadoop描述
The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.
The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures.
Apache Hadoop™®專案開發開源軟體可靠、可擴充套件、分散式計算。
Apache Hadoop軟體庫是一個框架,它允許使用簡單的程式設計模型在計算機叢集中對大資料集進行分散式處理。它被設計成從單個伺服器擴充套件到數千臺機器,每個伺服器提供本地計算和儲存。庫本身並不是依賴於硬體來提供高可用性,而是設計用於在應用層檢測和處理故障,因此在一組計算機上提供高可用性服務,每一種計算機都有可能出現故障。
(3)Hadoop介紹
①.開源的 ②.分散式儲存+分散式計算平臺
(4)Hadoop作用
能搭建大型資料倉庫,PB級資料的儲存、處理、分析、統計等業務(絕大部分都是從日誌分析)
2. Hadoop核心元件
(1)HDFS分散式檔案系統
①.源於Google的GFS論文,論文發表於2..3年10月
②.HDFS是GFS的克隆版
③.HDFS特點:擴充套件性 容錯性 海量資料儲存
④.將檔案切分成指定大小的資料塊並以多副本的儲存在多個機器上(128M)
⑤.資料切分、多副本、容錯等操作對使用者是透明的。(操作的是檔案)
(2)YARN資源排程系統
YARN:YET Another Resource Negotiator(另一種資源協調者)
①.負責整個叢集資源的管理和排程
②.YARN特點:擴充套件性、容錯性、多框架資源統一排程
(3)MapReduce分散式計算框架
①.源自於Google的MapReduce論文,發表於2001年12月
②.MapReduce特點:擴充套件性、容錯性、海量數量離線處理
③.工作流程。給出一篇文章,統計出文章中每個單詞出現的次數
3. Hadoop優勢
(1)高可靠性
①.資料儲存:資料塊多副本
②.資料計算:重新排程作業計算
(2)高擴充套件性
①.儲存/計算資源不夠時,可以橫向的線性擴充套件機器
②.一個叢集中可以包含數以千計的節點
(3)其他
①.可以儲存在廉價機器上,降低成本
②.成熟的生態圈
4. Hadoop發展史
· 2002年10月,Doug Cutting和Mike Cafarella建立了開源網頁爬蟲專案Nutch。
· 2003年10月,Google發表Google File System論文。
· 2004年7月,Doug Cutting和Mike Cafarella在Nutch中實現了類似GFS的功能,即後來HDFS的前身。
· 2004年10月,Google發表了MapReduce論文。
· 2005年2月,Mike Cafarella在Nutch中實現了MapReduce的最初版本。
· 2005年12月,開源搜尋專案Nutch移植到新框架,使用MapReduce和NDFS(Nutch Distributed File System )來執行,在20個節點穩定執行。
· 2006年1月,Doug Cutting加入雅虎,Yahoo!提供一個專門的團隊和資源將Hadoop發展成一個可在網路上執行的系統。
· 2006年2月,Apache Hadoop專案正式啟動以支援MapReduce和HDFS的獨立發展。
· 2006年2月,Yahoo!的網格計算團隊採用Hadoop。
· 2006年3月,Yahoo!建設了第一個Hadoop叢集用於開發。
· 2006年4月,第一個Apache Hadoop釋出。
· 2006年4月,在188個節點上(每個節點10GB)執行排序測試集需要47.9個小時。
· 2006年5月,Yahoo!建立了一個300個節點的Hadoop研究叢集。
· 2006年5月,在500個節點上執行排序測試集需要42個小時(硬體配置比4月的更好)。
· 2006年11月,研究叢集增加到600個節點。
· 2006年11月,Google發表了Bigtable論文,這最終激發了HBase的建立。
· 2006年12月,排序測試集在20個節點上執行1.8個小時,100個節點上執行3.3小時,500個節點上執行5.2小時,900個節點上執行7.8個小時。
· 2007年1月,研究叢集增加到900個節點。
· 2007年4月,研究叢集增加到兩個1000個節點的叢集。
· 2007年10月,第一個Hadoop使用者組會議召開,社群貢獻開始急劇上升。
· 2007年,百度開始使用Hadoop做離線處理。
· 2007年,中國移動開始在“大雲”研究中使用Hadoop技術。
· 2008年,淘寶開始投入研究基於Hadoop的系統——雲梯,並將其用於處理電子商務相關資料。
· 2008年1月,Hadoop成為Apache頂級專案。
· 2008年2月,Yahoo!運行了世界上最大的Hadoop應用,宣佈其搜尋引擎產品部署在一個擁有1萬個核心的Hadoop叢集上。
· 2008年4月,在900個節點上執行1TB排序測試集僅需209秒,成為世界最快。
· 2008年6月,Hadoop的第一個SQL框架——Hive成為了Hadoop的子專案。
· 2008年7月,Hadoop打破1TB資料排序基準測試記錄。Yahoo!的一個Hadoop叢集用209秒完成1TB資料的排序 ,比上一年的紀錄保持者保持的297秒快了將近90秒。
· 2008年8月,第一個Hadoop商業化公司Cloudera成立。
· 2008年10月,研究叢集每天裝載10TB的資料。
· 2008年11月,Apache Pig的最初版本釋出。
· 2009年3月,17個叢集總共24000臺機器。
· 2009 年3月,Cloudera推出世界上首個Hadoop發行版——CDH(Cloudera's Distribution including Apache Hadoop)平臺,完全由開放原始碼軟體組成。
· 2009年4月,贏得每分鐘排序,59秒內排序500GB(在1400個節點上)和173分鐘內排序100TB資料(在3400個節點上)。
· 2009年5月,Yahoo的團隊使用Hadoop對1 TB的資料進行排序只花了62秒時間。
· 2009年6月,Cloudera的工程師Tom White編寫的《Hadoop權威指南》初版出版,後被譽為Hadoop聖經。
· 2009年7月 ,Hadoop Core專案更名為Hadoop Common;
· 2009年7月 ,MapReduce 和 Hadoop Distributed File System (HDFS) 成為Hadoop專案的獨立子專案。
· 2009年7月 ,Avro 和 Chukwa 成為Hadoop新的子專案。
· 2009年8月,Hadoop創始人Doug Cutting加入Cloudera擔任首席架構師。
· 2009年10月,首屆Hadoop World大會在紐約召開。
· 2010年5月 ,Avro脫離Hadoop專案,成為Apache頂級專案。
· 2010年5月 ,HBase脫離Hadoop專案,成為Apache頂級專案。
· 2010年5月,IBM提供了基於Hadoop 的大資料分析軟體——InfoSphere BigInsights,包括基礎版和企業版。
· 2010年9月,Hive( Facebook) 脫離Hadoop,成為Apache頂級專案。
· 2010年9月,Pig脫離Hadoop,成為Apache頂級專案。
· 2010年-2011年,擴大的Hadoop社群忙於建立大量的新元件(Crunch,Sqoop,Flume,Oozie等)來擴充套件Hadoop的使用場景和可用性。
· 2011年1月,ZooKeeper 脫離Hadoop,成為Apache頂級專案。
· 2011年3月,Apache Hadoop獲得Media Guardian Innovation Awards 。
· 2011年3月, Platform Computing 宣佈在它的Symphony軟體中支援Hadoop MapReduce API。
· 2011年5月,Mapr Technologies公司推出分散式檔案系統和MapReduce引擎——MapR Distribution for Apache Hadoop。
· 2011年5月,HCatalog 1.0釋出。該專案由Hortonworks 在2010年3月份提出,HCatalog主要用於解決資料儲存、元資料的問題,主要解決HDFS的瓶頸,它提供了一個地方來儲存資料的狀態資訊,這使得 資料清理和歸檔工具可以很容易的進行處理。
· 2011年4月,SGI(Silicon Graphics International)基於SGI Rackable和CloudRack伺服器產品線提供Hadoop優化的解決方案。
· 2011年5月,EMC為客戶推出一種新的基於開源Hadoop解決方案的資料中心裝置——GreenPlum HD,以助其滿足客戶日益增長的資料分析需求並加快利用開源資料分析軟體。Greenplum是EMC在2010年7月收購的一家開源資料倉庫公司。
· 2011年5月,在收購了Engenio之後, NetApp推出與Hadoop應用結合的產品E5400儲存系統。
· 2011年6月,Calxeda公司發起了“開拓者行動”,一個由10家軟體公司組成的團隊將為基於Calxeda即將推出的ARM系統上晶片設計的伺服器提供支援。併為Hadoop提供低功耗伺服器技術。
· 2011年6月,資料整合供應商Informatica釋出了其旗艦產品,產品設計初衷是處理當今事務和社會媒體所產生的海量資料,同時支援Hadoop。
· 2011年7月,Yahoo!和矽谷風險投資公司 Benchmark Capital建立了Hortonworks 公司,旨在讓Hadoop更加可靠,並讓企業使用者更容易安裝、管理和使用Hadoop。
· 2011年8月,Cloudera公佈了一項有益於合作伙伴生態系統的計劃——建立一個生態系統,以便硬體供應商、軟體供應商以及系統整合商可以一起探索如何使用Hadoop更好的洞察資料。
· 2011年8月,Dell與Cloudera聯合推出Hadoop解決方案——Cloudera Enterprise。Cloudera Enterprise基於Dell PowerEdge C2100機架伺服器以及Dell PowerConnect 6248乙太網交換機。
· 2012年3月,企業必須的重要功能HDFS NameNode HA被加入Hadoop主版本。
· 2012年8月,另外一個重要的企業適用功能YARN成為Hadoop子專案。
· 2012年10月,第一個Hadoop原生MPP查詢引擎Impala加入到了Hadoop生態圈。
· 2014年2月,Spark逐漸代替MapReduce成為Hadoop的預設執行引擎,併成為Apache基金會頂級專案。
· 2015年2月,Hortonworks和Pivotal抱團提出“Open Data Platform”的倡議,受到傳統企業如Microsoft、IBM等企業支援,但其它兩大Hadoop廠商Cloudera和MapR拒絕參與。
· 2015年10月,Cloudera公佈繼HBase以後的第一個Hadoop原生儲存替代方案——Kudu。
· 2015年12月,Cloudera發起的Impala和Kudu專案加入Apache孵化器。
5. Hadoop生態系統(重點)
(1)狹義Hadoop和廣義Hadoop
①.狹義Hadoop
是一個適合大資料分散式儲存(HDFS)、分散式計算(MapReduce)和資源排程(YARN)的平臺;
②.廣義的Hadoop
指的是Hadoop生態系統,Hadoop生態系統是一個很龐大的概念,hadoop是其中最重要最基礎的一個部分;生態系統中的每一個子系統只能解決某一個特定的問題域(甚至可能很窄),不搞統一性的全能系統,而是小而精的多個小系統。
(2).生態系統特點
①.開源、社群活躍
②.囊括了大資料處理的方方面面
③.成熟的生態圈
6. Hadoop發行版的選擇
(1)Apache Hadoop
學習版本,很容易出現問題不能解決(10%或者更少)
(2)CDH: Cloudera Distributed Hadoop
商業版,直接通過瀏覽器安裝,使用很方便。CM不開源(70%)
(3)HDP: Hortonworks Data Platform
商業版,安裝升級和新增節點比較麻煩(20%)
7. Hadoop企業應用案例
(1)消費大資料
亞馬遜,根據使用者在沒訂單之前,會提前把包裹傳送出去。通過歷史資料和行為資料把你感興趣的提出來
(2)尿不溼和啤酒