0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

hadoop環(huán)境的基本概念和部署方法

汽車玩家 ? 來源:今日頭條 ? 作者:不一樣的程序猿 ? 2020-03-15 17:14 ? 次閱讀

1概述

1.1目的

初步了解hadoop,初步掌握hadoop環(huán)境的部署方法。

1.2基本概念

hadoop的核心主要包含:HDFS和MapReduce

HDFS是分布式文件系統(tǒng),用于分布式存儲海量數(shù)據(jù)。

MapReduce是分布式數(shù)據(jù)處理模型,本質(zhì)是并行處理

2基本概念

2.1HDFS

2.1.1HDFS是什么?

HADOOP DISTRIBUTED FILE SYSTEM,簡稱HDFS,是一個分布式文件系統(tǒng)。它是谷歌的GFS提出之后出現(xiàn)的另外一種文件系統(tǒng)。它有一定高度的容錯性,而且提供了高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS 提供了一個高度容錯性和高吞吐量的海量數(shù)據(jù)存儲解決方案。

在最初,HADOOP是作為Apache Nutch搜索引擎項目的基礎(chǔ)架構(gòu)而開發(fā)的,后來由于它獨(dú)有的特性,讓它成為HADOOP CORE項目的一部分。

2.1.2HDFS的設(shè)計思路?

是什么提供它高吞吐量的數(shù)據(jù)訪問和適合大規(guī)模數(shù)據(jù)集的應(yīng)用的特性呢,這就要說一下它的設(shè)計思路。

首先HDFS的設(shè)計之初就是針對超大文件的存儲的,小文件不會提高訪問和存儲速度,反而會降低;其次它采用了最高效的訪問模式,也就是經(jīng)常所說的流式數(shù)據(jù)訪問,特點就是一次寫入多次讀??;再有就是它運(yùn)行在普通的硬件之上的,即使硬件故障,也就通過容錯來保證數(shù)據(jù)的高可用。

2.1.3HDFS的一些概念

Block:大文件的存儲會被分割為多個block進(jìn)行存儲。默認(rèn)為64MB,每一個blok會在多個datanode上存儲多份副本,默認(rèn)為3份。[這些設(shè)置都能夠通過配置文件進(jìn)行更改]

Namenode:主要負(fù)責(zé)存儲一些metadata信息,主要包括文件目錄、block和文件對應(yīng)關(guān)系,以及block和datanote的對應(yīng)關(guān)系

Datanode:負(fù)責(zé)存儲數(shù)據(jù),上面我們所說的高度的容錯性大部分在datanode上實現(xiàn)的[還有一部分容錯性是體現(xiàn)在namenode和secondname,還有jobtracker的容錯等]。

2.1.4HDFS的基礎(chǔ)架構(gòu)圖

hadoop環(huán)境的基本概念和部署方法

HDFS的基礎(chǔ)架構(gòu)圖

2.1.5解析HDFS帶來的好處

高吞吐量訪問:HDFS的每個block分布在不同的rack上,在用戶訪問時,HDFS會計算使用最近和訪問量最小的服務(wù)器給用戶提供。由于block在不同的rack上都有備份,所以不再是單數(shù)據(jù)訪問,所以速度和效率是非常快的。另外HDFS可以并行從服務(wù)器集群中讀寫,增加了文件讀寫的訪問帶寬。

高容錯性:上面簡單的介紹了一下高度容錯。系統(tǒng)故障是不可避免的,如何做到故障之后的數(shù)據(jù)恢復(fù)和容錯處理是至關(guān)重要的。HDFS通過多方面保證數(shù)據(jù)的可靠性,多分復(fù)制并且分布到物理位置的不同服務(wù)器上,數(shù)據(jù)校驗功能、后臺的連續(xù)自檢數(shù)據(jù)一致性功能,都為高容錯提供了可能。

容量擴(kuò)充:因為HDFS的block信息存放到namenode上,文件的block分布到datanode上,當(dāng)擴(kuò)充的時候,僅僅添加datanode數(shù)量,系統(tǒng)可以在不停止服務(wù)的情況下做擴(kuò)充,不需要人工干預(yù)。

2.2MapReduce

從它名字上來看就大致可以看出個緣由,兩個動詞Map和Reduce。

Map(展開)就是將一個任務(wù)分解成為多個任務(wù),Reduce就是將分解后多任務(wù)處理的結(jié)果匯總起來,得出最后的分析結(jié)果。

2.2.1MapReduce原理

在Hadoop中,每個MapReduce任務(wù)都被初始化為一個Job,每個Job又可以分為兩種階段:map階段和reduce階段。這兩個階段分別用兩個函數(shù)表示,即map函數(shù)和reduce函數(shù)。map函數(shù)接收一個形式的輸入,然后同樣產(chǎn)生一個形式的中間輸出,Hadoop函數(shù)接收一個如形式的輸入,然后對這個value集合進(jìn)行處理,每個reduce產(chǎn)生0或1個輸出,reduce的輸出也是形式的。

2.2.2Map的過程

MapRunnable從input split中讀取一個個的record,然后依次調(diào)用Mapper的map函數(shù),將結(jié)果輸出。map的輸出并不是直接寫入硬盤,而是將其寫入緩存memory buffer。當(dāng)buffer中數(shù)據(jù)的到達(dá)一定的大小,一個背景線程將數(shù)據(jù)開始寫入硬盤。在寫入硬盤之前,內(nèi)存中的數(shù)據(jù)通過partitioner分成多個partition。在同一個partition中,背景線程會將數(shù)據(jù)按照key在內(nèi)存中排序。每次從內(nèi)存向硬盤flush數(shù)據(jù),都生成一個新的spill文件。

當(dāng)此task結(jié)束之前,所有的spill文件被合并為一個整的被partition的而且排好序的文件。reducer可以通過http協(xié)議請求map的輸出文件,tracker.http.threads可以設(shè)置http服務(wù)線程數(shù)。

2.2.3Reduce的過程

當(dāng)map task結(jié)束后,其通知TaskTracker,TaskTracker通知JobTracker。對于一個job,JobTracker知道TaskTracer和map輸出的對應(yīng)關(guān)系。reducer中一個線程周期性的向JobTracker請求map輸出的位置,直到其取得了所有的map輸出。reduce task需要其對應(yīng)的partition的所有的map輸出。reduce task中的copy過程即當(dāng)每個map task結(jié)束的時候就開始拷貝輸出,因為不同的map task完成時間不同。reduce task中有多個copy線程,可以并行拷貝map輸出。當(dāng)很多map輸出拷貝到reduce task后,一個背景線程將其合并為一個大的排好序的文件。當(dāng)所有的map輸出都拷貝到reduce task后,進(jìn)入sort過程,將所有的map輸出合并為大的排好序的文件。最后進(jìn)入reduce過程,調(diào)用reducer的reduce函數(shù),處理排好序的輸出的每個key,最后的結(jié)果寫入HDFS。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Hadoop
    +關(guān)注

    關(guān)注

    1

    文章

    90

    瀏覽量

    16375
  • HDFS
    +關(guān)注

    關(guān)注

    1

    文章

    31

    瀏覽量

    9840
收藏 0人收藏

    評論

    相關(guān)推薦
    熱點推薦

    第十三章 通訊的基本概念

    本章介紹通訊基本概念,包括串行/并行、全雙工/半雙工/單工、同步/異步通訊,還提及通訊速率中比特率與波特率的概念。
    的頭像 發(fā)表于 05-22 17:29 ?1108次閱讀
    第十三章 通訊的<b class='flag-5'>基本概念</b>

    了解虛擬電廠的基本概念

    虛擬電廠的基本概念: 虛擬電廠是一種基于現(xiàn)代信息技術(shù)和能源互聯(lián)網(wǎng)的能源管理模式,它將分散的、可再生能源和儲能設(shè)備通過虛擬化技術(shù)進(jìn)行集成和管理,形成一個具有集中調(diào)度、統(tǒng)一運(yùn)營和優(yōu)化控制的虛擬化電力系統(tǒng)
    的頭像 發(fā)表于 12-24 17:12 ?825次閱讀
    了解虛擬電廠的<b class='flag-5'>基本概念</b>

    地線基本概念、分類及在應(yīng)用中的設(shè)計與處理方法

    地線在電氣系統(tǒng)中的作用常被忽略,但它卻是保障設(shè)備運(yùn)行和人身安全的重要組成部分。本文將帶您深入了解地線的基本概念、分類及其在實際應(yīng)用中的設(shè)計與處理方法。 一、地線的主要作用 地線的核心功能是當(dāng)電器發(fā)生
    的頭像 發(fā)表于 12-03 09:55 ?2298次閱讀

    Linux應(yīng)用編程的基本概念

    Linux應(yīng)用編程涉及到在Linux環(huán)境下開發(fā)和運(yùn)行應(yīng)用程序的一系列概念。以下是一些涵蓋Linux應(yīng)用編程的基本概念。
    的頭像 發(fā)表于 10-24 17:19 ?597次閱讀

    X電容和Y電容的基本概念

    在電子電路中,電容器是一種至關(guān)重要的元件,它用于儲存電荷并在電路中釋放能量。而在眾多的電容器中,X電容和Y電容作為安規(guī)電容,因其特定的應(yīng)用場景和安全性能而受到廣泛關(guān)注。本文將對X電容和Y電容的基本概念、工作原理、應(yīng)用場景以及選擇和維護(hù)等方面進(jìn)行詳細(xì)介紹。
    的頭像 發(fā)表于 10-21 16:43 ?5191次閱讀

    集電極開路的基本概念與原理

    在集成電路的廣闊領(lǐng)域中,集電極開路作為一種獨(dú)特的輸出形式,扮演著舉足輕重的角色。它如同一個精密控制的開關(guān),既能實現(xiàn)電路的通斷,又能靈活應(yīng)對不同的電流需求。 集電極開路的基本概念與原理 集電極開路
    的頭像 發(fā)表于 09-19 10:19 ?1101次閱讀
    集電極開路的<b class='flag-5'>基本概念</b>與原理

    DDR4的基本概念和特性

    里程碑。自2011年面世以來,DDR4憑借其顯著的性能提升和能效優(yōu)化,迅速成為市場主流。以下將從DDR4的基本概念、技術(shù)特性、性能優(yōu)勢以及市場應(yīng)用等方面進(jìn)行詳細(xì)闡述。
    的頭像 發(fā)表于 09-04 11:43 ?5496次閱讀

    紋波電壓的基本概念、產(chǎn)生原因及測量方法

    ,因此對紋波電壓的研究具有重要的實際意義。 紋波電壓的基本概念 2.1 紋波電壓的定義 紋波電壓是指在直流電源或信號中疊加的周期性波動電壓。紋波電壓通常表現(xiàn)為正弦波形,其頻率與電源或信號的頻率相同。紋波電壓的大小通常用
    的頭像 發(fā)表于 08-29 09:34 ?3825次閱讀

    時序邏輯電路的基本概念、組成、分類及設(shè)計方法

    時序邏輯電路是數(shù)字電路中的一種重要類型,它不僅在計算機(jī)、通信、控制等領(lǐng)域有著廣泛的應(yīng)用,而且對于理解和設(shè)計現(xiàn)代電子系統(tǒng)具有重要意義。 1. 時序邏輯電路的基本概念 時序邏輯電路(Sequential
    的頭像 發(fā)表于 08-28 11:45 ?3994次閱讀

    socket的基本概念和原理

    的通信。它是一個抽象的概念,用于表示網(wǎng)絡(luò)中的一個通信實體。在計算機(jī)網(wǎng)絡(luò)中,Socket允許應(yīng)用程序通過網(wǎng)絡(luò)發(fā)送和接收數(shù)據(jù)。Socket的概念最早由UNIX操作系統(tǒng)引入,后來被廣泛應(yīng)用于各種操作系統(tǒng)和編程語言中。 2. Socket的基本
    的頭像 發(fā)表于 08-16 10:51 ?3621次閱讀

    BP網(wǎng)絡(luò)的基本概念和訓(xùn)練原理

    )的多層前饋神經(jīng)網(wǎng)絡(luò)。BP網(wǎng)絡(luò)自1985年提出以來,因其強(qiáng)大的學(xué)習(xí)和適應(yīng)能力,在機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、模式識別等領(lǐng)域得到了廣泛應(yīng)用。以下將對BP網(wǎng)絡(luò)的基本概念、訓(xùn)練原理及其優(yōu)缺點進(jìn)行詳細(xì)闡述。
    的頭像 發(fā)表于 07-19 17:24 ?2981次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本概念、原理及特點

    基本概念、原理、特點以及在不同領(lǐng)域的應(yīng)用情況。 一、卷積神經(jīng)網(wǎng)絡(luò)的基本概念 卷積神經(jīng)網(wǎng)絡(luò)是一種深度學(xué)習(xí)算法,它由多層卷積層和池化層堆疊而成。卷積層負(fù)責(zé)提取圖像中的局部特征,而池化層則負(fù)責(zé)降低特征的空間維度,同時增加對圖像位移的不變性。通過這種方式,CNN能夠自
    的頭像 發(fā)表于 07-11 14:38 ?2317次閱讀

    遷移學(xué)習(xí)的基本概念和實現(xiàn)方法

    遷移學(xué)習(xí)(Transfer Learning)是機(jī)器學(xué)習(xí)領(lǐng)域中的一個重要概念,其核心思想是利用在一個任務(wù)或領(lǐng)域中學(xué)到的知識來加速或改進(jìn)另一個相關(guān)任務(wù)或領(lǐng)域的學(xué)習(xí)過程。這種方法在數(shù)據(jù)稀缺或領(lǐng)域遷移的情況下尤為有效,因為它能夠顯著減少對大量標(biāo)記數(shù)據(jù)的需求,提高模型的學(xué)習(xí)效率和
    的頭像 發(fā)表于 07-04 17:30 ?3330次閱讀

    循環(huán)神經(jīng)網(wǎng)絡(luò)的基本概念

    循環(huán)神經(jīng)網(wǎng)絡(luò)的基本概念、循環(huán)機(jī)制、長短時記憶網(wǎng)絡(luò)(LSTM)、門控循環(huán)單元(GRU)等方面進(jìn)行介紹。 循環(huán)神經(jīng)網(wǎng)絡(luò)的基本概念 循環(huán)神經(jīng)網(wǎng)絡(luò)是一種時間序列模型,其基本思想是將序列數(shù)據(jù)中的每個元素(例如,單詞、時間點等)作為輸入,通過循環(huán)結(jié)構(gòu)將前一個時間步的
    的頭像 發(fā)表于 07-04 14:31 ?1225次閱讀

    組合邏輯控制器的基本概念、實現(xiàn)原理及設(shè)計方法

    廣泛應(yīng)用于計算機(jī)、通信、控制等領(lǐng)域。 本文將詳細(xì)介紹組合邏輯控制器的基本概念、實現(xiàn)原理、設(shè)計方法、應(yīng)用場景等方面的內(nèi)容,以幫助讀者全面了解組合邏輯控制器。 基本概念 1.1 組合邏輯 組合邏輯(Combinatorial Log
    的頭像 發(fā)表于 06-30 10:26 ?3229次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品