Hadoop(一)---概述

Hadoop是什么

Hadoop是一個(gè)用于海量數(shù)據(jù)存儲(chǔ)和分析計(jì)算分布式基礎(chǔ)框架。不過(guò)從廣義上來(lái)講,Hadoop不單指某個(gè)具體的框架,而是指一個(gè)生態(tài)圈。

hadoop技術(shù)生態(tài)體系

  • Sqoop是一款數(shù)據(jù)傳輸工具,它即可以將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)入到Hadoop的HDFS中,又可以將HDFS中的數(shù)據(jù)導(dǎo)入到關(guān)系型數(shù)據(jù)庫(kù)中。
  • Flume是Cloudera提供的一個(gè)高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時(shí),F(xiàn)lume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力。
  • Kafka是一個(gè)消息中間件。
  • Storm用于“連續(xù)計(jì)算”,對(duì)數(shù)據(jù)流做連續(xù)查詢,在計(jì)算時(shí)就將結(jié)果以流的形式輸出給用戶。不過(guò)在實(shí)時(shí)計(jì)算領(lǐng)域其逐漸被Spark所替代。
  • Spark是當(dāng)前最流行的開源大數(shù)據(jù)內(nèi)存計(jì)算框架??梢曰贖adoop上存儲(chǔ)的大數(shù)據(jù)進(jìn)行計(jì)算。
  • Oozie是一個(gè)管理Hdoop作業(yè)(job)的工作流程調(diào)度管理系統(tǒng)。
  • Hbase是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫(kù),它適用于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。
  • Hive:Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射成一張數(shù)據(jù)庫(kù)表,并提供簡(jiǎn)單的SQL查詢功能,可以將SQL語(yǔ)句轉(zhuǎn)化成MapReduce任務(wù)運(yùn)行。其優(yōu)點(diǎn)是可以通過(guò)類SQL語(yǔ)句塊速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),而不必開發(fā)專門的MapReduce應(yīng)用。
  • R語(yǔ)言是一個(gè)用于統(tǒng)計(jì)計(jì)算和統(tǒng)計(jì)制圖的優(yōu)秀工具。
  • Mahout是個(gè)可擴(kuò)展的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘庫(kù)。
  • Zookeeper是一個(gè)分布式配置中心。

Hadoop官方網(wǎng)站:http://hadoop.apache.org/

Hadoop發(fā)行版本

目前而言,不收費(fèi)的Hadoop發(fā)行版本主要有三個(gè),分別是:

  • Apache Hadoop,最原始的版本,其他發(fā)行版本均基于此版本改進(jìn);
  • Cloudera Hadoop,簡(jiǎn)稱為CDH,比Apache Hadoop在兼容性,安全性,穩(wěn)定性上有所增強(qiáng)。由Hadoop的創(chuàng)始人加盟Cloudera公司所創(chuàng)立。
  • Hortonworks Hadoop,由之前在雅虎研究Hadoop的多名工程師,成立Hortonworks公司并發(fā)布。

一般來(lái)說(shuō),Apache發(fā)行的版本多用于學(xué)習(xí),而公司用得較多的是Cloudera Hadoop。

Apache Hadoop版本的官網(wǎng):http://hadoop.apache.org/releases.html
Cloudera Hadoop版本的官網(wǎng):https://www.cloudera.com/downloads/cdh/5-10-0.html
Hortonworks Hadoop版本的官網(wǎng):https://hortonworks.com/products/data-center/hdp/

Hadoop的組件

Hadoop1.x和2.x所包含的組件基本一樣,除了2.x新增的資源調(diào)度Yarn。不同版本之間具體所包含的組件如下圖所示

Hadoop組件圖

下面看看組件各自的細(xì)節(jié)

HDFS概述

HDFS(Hadoop Distributed File System)是分布式文件存儲(chǔ),主要為海量數(shù)據(jù)提供高效的存儲(chǔ)方案。同時(shí)HDFS是Hadoop項(xiàng)目的核心子項(xiàng)目。


HDFS系統(tǒng)架構(gòu)

我們可以看到在HDFS中有3種類型的組件,它們各自的作用如下:

  • NameNode:存儲(chǔ)文件的元數(shù)據(jù),如:文件名,文件目錄結(jié)構(gòu),文件屬性(生成時(shí)間、副本數(shù)、文件權(quán)限),以及每個(gè)文件的塊列表和塊所在的DateNode等;其處理客戶端的讀寫請(qǐng)求。
  • DataNode:存儲(chǔ)實(shí)際的數(shù)據(jù)塊,執(zhí)行數(shù)據(jù)塊的讀/寫操作。
  • Secondary NameNode:用來(lái)監(jiān)控HDFS狀態(tài)的輔助后臺(tái)程序,每隔一段時(shí)間獲取HDFS元數(shù)據(jù)的快照,Secondary NameNode并不是NameNode的熱備。

YARN

YARN是資源管理和調(diào)度系統(tǒng),它在Hadoop 2.x引入。YARN架構(gòu)圖如下所示:


yarn

從上面的圖中可以看到,YARN架構(gòu)中有4種組件:Resource Manager、Node Manager、App Mastr、Container,它們的主要功能如下

  • ResourceManager
    1). 資源的分配與調(diào)度;
    2). 處理客戶端請(qǐng)求;
    3). 監(jiān)控NodeManager;
    4). 啟動(dòng)或監(jiān)控ApplicationMaster。
  • NodeManager
    1). 管理單個(gè)節(jié)點(diǎn)上的資源;
    2). 處理來(lái)自ResourceManager或ApplicationMaster的命令。
  • ApplicationMaster
    1). 負(fù)責(zé)數(shù)據(jù)的切分;
    2). 任務(wù)的監(jiān)控與容錯(cuò);
    3). 為應(yīng)用程序申請(qǐng)資源并分配給內(nèi)部的任務(wù)。
  • Container
    Container是YARN中的資源抽象,它封裝了某個(gè)節(jié)點(diǎn)上的多維資源,如內(nèi)存、CPU、硬盤、網(wǎng)絡(luò)等。

MapReduce

MapReduce為開發(fā)者提供編程接口,是一個(gè)分布式計(jì)算框架。

MapReduce程序的工作分兩個(gè)階段進(jìn)行:

  • Map階段:并行處理輸入數(shù)據(jù);
  • Reduce 階段:對(duì)Map結(jié)果進(jìn)行匯總。

Hadoop Common

提供一些輔助的工具

參考(more reding)

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

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

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