初識Hadoop

大數(shù)據(jù)簡介

定義

大數(shù)據(jù)是指無法在一定時間范圍內(nèi)用常規(guī)軟件工具進(jìn)行處理和分析的數(shù)據(jù)集合,需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能的海量、高增長率和多樣性的信息資產(chǎn)

特點(diǎn)

早期的4V:

  1. Volume:巨量的數(shù)據(jù)(采集、存儲和計算的數(shù)據(jù)量都非常大)GB、TB、PB、EB、ZB、YB、BB、NB、DB
  2. Variety:多樣性(數(shù)據(jù)的形式和來源多樣性,包括結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù),例如網(wǎng)絡(luò)日志、音頻、視頻、圖片等數(shù)據(jù))
  3. Value:低價值(數(shù)據(jù)量大,但是價值低。很多都是無用的數(shù)據(jù)。)
  4. Velocity:高速(數(shù)據(jù)的創(chuàng)建、存儲、分析都要求被高速處理。比例電商個人推薦)

后來的5V:

  1. Veracity :真實(確保數(shù)據(jù)的真實,才能保證分析的結(jié)果正確)

應(yīng)用場景

  1. 倉儲物流(智能調(diào)撥,貨總在離消費(fèi)者最近的地方)
  2. 電商零售(啤酒和紙尿褲的案例、個人推薦、雙十一實時銷售大屏)
  3. 汽車(無人駕駛汽車)
  4. 電信(針對不同的人群推出不同的套餐)
  5. 生物醫(yī)學(xué)(解讀DNA)
  6. 人工智能(阿爾法狗)
  7. 智慧城市等

發(fā)展趨勢

  1. 15年提出 實施大數(shù)據(jù)戰(zhàn)略,重要的發(fā)展機(jī)遇
  2. 17年19大報告明確指出,同年,25所高校成功申請開設(shè)大數(shù)據(jù)課程
  3. 2020年再次強(qiáng)調(diào)
  4. 大數(shù)據(jù)屬于高薪行業(yè),大牛少,升職壓力小
  5. 需求大,薪水高

職業(yè)發(fā)展路線

目前大數(shù)據(jù)高、中、低檔次的人才都很缺。
從職業(yè)來看:大數(shù)據(jù)開發(fā)、挖掘、算法、架構(gòu)。
從級別來看:工程師、高級工程師、架構(gòu)師、科學(xué)家。
大數(shù)據(jù)相關(guān)崗位很多:ETL工程師,數(shù)據(jù)倉庫工程師、實時流處理工程師、用戶畫像工程師、數(shù)據(jù)分析師、數(shù)據(jù)挖掘工程師、大數(shù)據(jù)開發(fā)工程師、大數(shù)據(jù)產(chǎn)品經(jīng)理、可視化工程師、爬蟲工程師、大數(shù)據(jù)運(yùn)營經(jīng)理、大數(shù)據(jù)架構(gòu)師、數(shù)據(jù)科學(xué)家

Hadoop簡介

定義

Hadoop是一個適合大數(shù)據(jù)的分布式存儲和計算平臺

廣義上講Hadoop代表大數(shù)據(jù)的一個技術(shù)生態(tài)圈,例如:HDFS分布式文件存儲)、MapReduce分布式離線計算、Hive數(shù)據(jù)倉庫、HBase海量劣勢非關(guān)系型數(shù)據(jù)庫、Flume數(shù)據(jù)采集工具、SqooqETL工具、Kafka高吞吐消息中間件等

發(fā)展歷史

  • Hadoop起源于Nutch,創(chuàng)始人Doug Cutting,Nutch是一個開源Java實現(xiàn)的搜索引擎。
  • Google的三篇論文 GFS:谷歌的分布式文件存儲系統(tǒng);MapReduce:google的分布式計算框架;BigTable:大型分布式數(shù)據(jù)庫,演變關(guān)系:GFS->HDFS,Google MapReduce->MapReduce,BigTable->Hbase
  • 2005年,Hadoop作為Lucene的子項目Nuthc的一部分引入Apache
  • 2006年,Hadoop從Nutch剝離出來獨(dú)立
  • 2008年,Hadoop已經(jīng)成為Apache頂級項目

Hadoop的名字來源于Hadoop支付Doug Cutting兒子的毛絨玩具象。

Hadoop的特點(diǎn)

  1. 擴(kuò)容能力:Hadoop是計算機(jī)集群內(nèi)分配數(shù)據(jù)并完成計算任務(wù),集群可以方便擴(kuò)展到很多節(jié)點(diǎn)
  2. 低成本:Hadoop通過普通廉價的服務(wù)器集群分發(fā)及處理數(shù)據(jù),所以成本低
  3. 高效率: 可以在節(jié)點(diǎn)之間動態(tài)并行的移動數(shù)據(jù)
  4. 可靠性:自動維護(hù)數(shù)據(jù)的多份復(fù)制(副本),并且任務(wù)失敗能自動重新部署計算任務(wù)

發(fā)行版

  • Apache Hadoop 原始版本
  • 軟件收費(fèi)版本ClouderaManager(CDH)--生產(chǎn)環(huán)境使用
  • Hortonworks版本(HDP)

版本號變更

0.x:Hadoop最早的一個開源版本,在此基礎(chǔ)上有了1.x和2.x
1.x:主要修復(fù)1.x的一下bug
2.x:架構(gòu)產(chǎn)生重大變化,引入了yarn平臺等許多新特性
3.x:EC技術(shù)、Yarn的時間軸服務(wù)等新特性

優(yōu)劣勢

Hadoop的優(yōu)點(diǎn)
  1. Hadoop具有存儲和處理數(shù)據(jù)能力的可靠性
  2. Hadoop通過可用的計算機(jī)集群分配數(shù)據(jù)。完成存儲計算任務(wù),集群方便擴(kuò)展,具有擴(kuò)展性
  3. Hadoop能夠在節(jié)點(diǎn)之間動態(tài)移動數(shù)據(jù),并保證各個節(jié)點(diǎn)的動態(tài)平衡,處理速度非??欤哂懈咝?/li>
  4. Hadoop能夠自動保存數(shù)據(jù)的多個副本,具有容錯性
Hadoop的缺點(diǎn)
  1. Hadoop不使用低延遲數(shù)據(jù)訪問(無法快速的返回結(jié)果)
  2. 不能高效的存儲大量小文件(大量的小文件會浪費(fèi)NameNode的內(nèi)存)
  3. 不支持并發(fā)寫入并任意修改文件

Hadoop的重要組成

HDFS(Hadoop Distribute File System)

HDFS架構(gòu)圖.png

HDFS:

  • NameNode:Master角色 ,管理和維護(hù)元數(shù)據(jù),存儲文件的元數(shù)據(jù),比如文件名、文件目錄結(jié)構(gòu)、文件屬性(生成時間、副本數(shù)、文件權(quán)限),以及每個文件的塊列表和塊所在的DataNode等。
  • DataNode:slave角色,本地文件系統(tǒng)存儲文件塊數(shù)據(jù),以及塊數(shù)據(jù)的校驗。
  • SecondaryNameNode(2nn):輔助NameNode更好的工作,用來監(jiān)控HDFS狀態(tài)的輔助后臺程序, 每隔一段時間獲取HDFS元數(shù)據(jù)快照。

MapReduce:一個分布式離線并行計算框架

分而治之思想:

MapReduce結(jié)構(gòu)圖.png
  • Map階段:每個節(jié)點(diǎn)負(fù)責(zé)一部分?jǐn)?shù)據(jù)的計算,每個節(jié)點(diǎn)得到部分結(jié)果。
  • Reduce階段:把之前Map階段輸出結(jié)果進(jìn)行匯總得到最終結(jié)果。

Yarn:作業(yè)調(diào)度與集群資源管理的框架

計算資源協(xié)調(diào)

Yarn架構(gòu)圖.png

Resource Manager 相當(dāng)于Master角色,與客戶端交互,處理客戶端請求,監(jiān)控NodeManager角色,Node Manager相當(dāng)于Slave角色。Container真正負(fù)責(zé)運(yùn)行一個Task,可以理解為一個虛擬資源集合。AppMaster:為應(yīng)用申請資源,任務(wù)監(jiān)控、容錯。

Yarn中有如下幾個主要角色,同樣,既是角色名、也是進(jìn)程名,也代指所在計算機(jī)節(jié)點(diǎn)名稱。

  • ResourceManager(rm):處理客戶端請求,啟動、監(jiān)控ApplicationMaster。監(jiān)控NodeManager、資源分配與調(diào)度
  • NodeManager(nm):單個節(jié)點(diǎn)上的資源管理、處理來自ResourceManager的命令,處理來之ApplicationManager的命令
  • ApplicationMaster(am):數(shù)據(jù)切分、為應(yīng)用程序申請資源,并分配內(nèi)部任務(wù)、任務(wù)監(jiān)控與容錯。
  • Containeer:對于任務(wù)運(yùn)行環(huán)境的抽象,封裝了CPU、內(nèi)存等多維度資源以及環(huán)境變量、啟動命令等任務(wù)運(yùn)行相關(guān)的信息。

ResourceManager是老大,NodeManager是小弟,ApplicationMaster是計算任務(wù)專員

Common

支持其他模塊的工具模塊(configuration、RPC、序列化機(jī)制、日志操作)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容