hadoop的介紹

一、hadoop背景介紹

1.1 什么是HADOOP

  1. HADOOP是apache旗下的一套開源軟件平臺

  2. HADOOP提供的功能:利用服務(wù)器集群,根據(jù)用戶的自定義業(yè)務(wù)邏輯,對海量數(shù)據(jù)進行分布式處理

  3. HADOOP的核心組件有

    A. HDFS(分布式文件系統(tǒng))hdfs

    B. YARN(運算資源調(diào)度系統(tǒng))yarn

    C. MAPREDUCE(分布式運算編程框架)mapreduce

  4. 廣義上來說,HADOOP通常是指一個更廣泛的概念——HADOOP生態(tài)圈

1.2 HADOOP產(chǎn)生背景

  1. HADOOP最早起源于Nutch。Nutch的設(shè)計目標(biāo)是構(gòu)建一個大型的全網(wǎng)搜索引擎,包括網(wǎng)頁抓取、索引、查詢等功能,但隨著抓取網(wǎng)頁數(shù)量的增加,遇到了嚴(yán)重的可擴展性問題——如何解決數(shù)十億網(wǎng)頁的存儲和索引問題。
  2. 2003年、2004年谷歌發(fā)表的兩篇論文為該問題提供了可行的解決方案。
    ——分布式文件系統(tǒng)(GFS),可用于處理海量網(wǎng)頁的存儲
    ——分布式計算框架MAPREDUCE,可用于處理海量網(wǎng)頁的索引計算問題。
  3. Nutch的開發(fā)人員完成了相應(yīng)的開源實現(xiàn)HDFS和MAPREDUCE,并從Nutch中剝離成為獨立項目HADOOP,到2008年1月,HADOOP成為Apache頂級項目,迎來了它的快速發(fā)展期。

1.3 HADOOP在大數(shù)據(jù)、云計算中的位置和關(guān)系

  1. 云計算是分布式計算、并行計算、網(wǎng)格計算、多核計算、網(wǎng)絡(luò)存儲、虛擬化、負(fù)載均衡等傳統(tǒng)計算機技術(shù)和互聯(lián)網(wǎng)技術(shù)融合發(fā)展的產(chǎn)物。借助IaaS(基礎(chǔ)設(shè)施即服務(wù))、PaaS(平臺即服務(wù))、SaaS(軟件即服務(wù))等業(yè)務(wù)模式,把強大的計算能力提供給終端用戶。

  2. 現(xiàn)階段,云計算的兩大底層支撐技術(shù)為“虛擬化”和“大數(shù)據(jù)技術(shù)”

  3. 而HADOOP則是云計算的PaaS層的解決方案之一,并不等同于PaaS,更不等同于云計算本身。

1.4 國內(nèi)外HADOOP應(yīng)用案例介紹

1、HADOOP應(yīng)用于數(shù)據(jù)服務(wù)基礎(chǔ)平臺建設(shè)


2、HADOOP用于用戶畫像


3、HADOOP用于網(wǎng)站點擊流日志數(shù)據(jù)挖掘

1.5 hadoop就業(yè)職位的要求

大數(shù)據(jù)是個復(fù)合專業(yè),包括應(yīng)用開發(fā)、軟件平臺、算法、數(shù)據(jù)挖掘等,因此,大數(shù)據(jù)技術(shù)領(lǐng)域的就業(yè)選擇是多樣的,但就HADOOP而言,通常都需要具備以下技能或知識:

A. HADOOP分布式集群的平臺搭建

B. HADOOP分布式文件系統(tǒng)HDFS的原理理解及使用

C. HADOOP分布式運算框架MAPREDUCE的原理理解及編程

D. Hive數(shù)據(jù)倉庫工具的熟練應(yīng)用

E. Flume、sqoop、oozie等輔助工具的熟練使用

F. Shell/python等腳本語言的開發(fā)能力

1.6 HADOOP生態(tài)圈以及各組成部分的簡介

1、各組件簡介:

HADOOP(hdfs、MAPREDUCE、yarn) 元老級大數(shù)據(jù)處理技術(shù)框架,擅長離線數(shù)據(jù)分析

Zookeeper 分布式協(xié)調(diào)服務(wù)基礎(chǔ)組件

Hbase 分布式海量數(shù)據(jù)庫,離線分析和在線業(yè)務(wù)通吃

Hive sql 數(shù)據(jù)倉庫工具,使用方便,功能豐富,基于MR延遲大

Sqoop數(shù)據(jù)導(dǎo)入導(dǎo)出工具

Flume數(shù)據(jù)采集框架

2、重點組件:

HDFS:分布式文件系統(tǒng)

MAPREDUCE:分布式運算程序開發(fā)框架

HIVE:基于大數(shù)據(jù)技術(shù)(文件系統(tǒng)+運算框架)的SQL數(shù)據(jù)倉庫工具

HBASE:基于HADOOP的分布式海量數(shù)據(jù)庫

ZOOKEEPER:分布式協(xié)調(diào)服務(wù)基礎(chǔ)組件

Mahout:基于mapreduce/spark/flink等分布式運算框架的機器學(xué)習(xí)算法庫

Oozie:工作流調(diào)度框架

Sqoop:數(shù)據(jù)導(dǎo)入導(dǎo)出工具

Flume:日志數(shù)據(jù)采集框架

二、分布式系統(tǒng)的概述

注:由于大數(shù)據(jù)技術(shù)領(lǐng)域的各類技術(shù)框架基本上都是分布式系統(tǒng),因此,理解hadoop、storm、
spark等技術(shù)框架,都需要具備基本的分布式系統(tǒng)概念

2.1 分布式軟件系統(tǒng)(Distributed Software Systems)

? 該軟件系統(tǒng)會劃分成多個子系統(tǒng)或模塊,各自運行在不同的機器上,子系統(tǒng)或模塊之間通過網(wǎng)絡(luò)通信進行協(xié)作,實現(xiàn)最終的整體功能

? 比如分布式操作系統(tǒng)、分布式程序設(shè)計語言及其編譯(解釋)系統(tǒng)、分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)等。

2.2 分布式軟件系統(tǒng)舉例:solrcloud

A. 一個solrcloud集群通常有多臺solr服務(wù)器

B. 每一個solr服務(wù)器節(jié)點負(fù)責(zé)存儲整個索引庫的若干個shard(數(shù)據(jù)分片)

C. 每一個shard又有多臺服務(wù)器存放若干個副本互為主備用

D. 索引的建立和查詢會在整個集群的各個節(jié)點上并發(fā)執(zhí)行

E. solrcloud集群作為整體對外服務(wù),而其內(nèi)部細(xì)節(jié)可對客戶端透明

總結(jié):利用多個節(jié)點共同協(xié)作完成一項或多項具體業(yè)務(wù)功能的系統(tǒng)就是分布式系統(tǒng)。

2.3 分布式應(yīng)用系統(tǒng)模擬開發(fā)

需求:可以實現(xiàn)由主節(jié)點將運算任務(wù)發(fā)往從節(jié)點,并將各從節(jié)點上的任務(wù)啟動;

程序清單:

AppMaster

AppSlave/APPSlaveThread

Task

程序運行邏輯流程:

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

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

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