您好,登錄后才能下訂單哦!
Hadoop 由HDFS 、MapReduce、HBASE、hive 和zookeeper 等成員組成,其中最
基礎(chǔ)最重要的元素是底層用于存儲集群中所有存儲節(jié)點文件的文件系統(tǒng)HDFS 來
執(zhí)行MapReduce 程序的MapReduce 引擎
1 pig 是一個基于Hadoop 的大規(guī)模數(shù)據(jù)分析平臺,pig 為復(fù)雜的海量數(shù)據(jù)并行計
算提供了一個簡單的操作和編程接口
2 hive 是基于Hadoop 的一個工具,提供完整的SQL 查詢,可以將sql 語句轉(zhuǎn)換
為MapReduce (映射)任務(wù)進行執(zhí)行
3 zookeeper:高效的,可擴展的協(xié)調(diào)系統(tǒng),存儲和協(xié)調(diào)關(guān)鍵共享狀態(tài)
4 HBASE 是一個開源的,基于列存儲模型的分布式數(shù)據(jù)庫
5 hdfs 是一個分布式文件系統(tǒng),具有高容錯的特點,適合于那些超大數(shù)據(jù)集的應(yīng)
用程序,
6 MapReduce 是一種編程模式,用于大規(guī)模數(shù)據(jù)集的并行計算
是一個高度容錯性的分布式文件系統(tǒng),可以被廣泛的部署于廉價的PC 上,他以流式訪問模式訪問應(yīng)用程序的數(shù)據(jù),這樣可以提高系統(tǒng)的數(shù)據(jù)吞吐量,因而非常適合用于具有超大數(shù)據(jù)集的應(yīng)用程序中
HDFS 架構(gòu)采用主從架構(gòu),一個HDFS 集群應(yīng)該包含一個namenode 節(jié)點和多個datanode 節(jié)點,name node 負責整個HDFS 文件系統(tǒng)中的文件元數(shù)據(jù)的保管和管理,集群中通常只有一臺機器上運行namenode,datanode 節(jié)點保存文件中的數(shù)據(jù),集群中的機器分別運行一個datenode 實例,在HDFS 中,namenode 節(jié)點稱為名稱節(jié)點,DataNode 稱為數(shù)據(jù)節(jié)點,DataNode 通過心跳機制與namenode 節(jié)點進行定時通信Namenode 相當于mfs 中的master serverDatanode 相當于mfs 中的chunk server
2 HDFS 的讀寫方式
寫入
文件寫入:如上圖
1 客戶端向nameode (master server ) 發(fā)起文件寫入請求
2 namenode 根據(jù)文件大小和文件塊配置情況,返回給客戶端DataNode 信息
(chunkserver)
3 client 將文件劃分成多個文件塊,根據(jù)DataNode 的地址信息,按順序?qū)懭朊總€
DataNode 中
讀取
步驟:
1 向namenode 發(fā)送讀取請求
2 namenode 返回文件位置列表
3 client 根據(jù)列表讀取文件信息
是一種編程模型,用于大規(guī)模數(shù)據(jù)集并行計算,map(映射)和reduce(化簡),采用分布方式,(分封制),先把任務(wù)分發(fā)到集群節(jié)點上,并行計算,然后將結(jié)果合并,多結(jié)點計算,涉及的任務(wù)調(diào)度,負載均衡,容錯,都有MapReduce 完成
用戶提交任務(wù)給job tracer ,job tracer 把對應(yīng)的用戶程序中的map 個reduce 操作映射到tasktracee 節(jié)點中,輸入模塊負責把輸入數(shù)據(jù)數(shù)據(jù)分成小數(shù)據(jù)塊,然后把它們傳遞給map 節(jié)點,map 節(jié)點得到每一個key/value 對,然后產(chǎn)生一個或多個key/value 對,然后寫入文件,reduce 節(jié)點獲取臨時文件中的數(shù)據(jù),對帶有相同key 的數(shù)據(jù)進行迭代計算,后將最終結(jié)果寫入文件
Hadoop 的核心是MapReduce,而MapReduce 的核心又在于map 和reduce 函數(shù)。它們是交給用戶實現(xiàn)的,這兩個函數(shù)定義了任務(wù)本身。
map 函數(shù):接受一個鍵值對(key-value pair)(例如上圖中的Splitting 結(jié)果),產(chǎn)生一組中間鍵值對(例如上圖中Mapping 后的結(jié)果)。Map/Reduce 框架會將map 函數(shù)產(chǎn)生的中間鍵值對里鍵相同的值傳遞給一個reduce 函數(shù)。
reduce 函數(shù):接受一個鍵,以及相關(guān)的一組值(例如上圖中Shuffling 后的結(jié)果),將這組值進行合并產(chǎn)生一組規(guī)模更小的值(通常只有一個或零個值)(例如上圖中Reduce 后的結(jié)果)
但是,Map/Reduce 并不是萬能的,適用于Map/Reduce 計算有先提條件:
(1)待處理的數(shù)據(jù)集可以分解成許多小的數(shù)據(jù)集;
(2)而且每一個小數(shù)據(jù)集都可以完全并行地進行處理;
若不滿足以上兩條中的任意一條,則不適合適用Map/Reduce 模式。
軟件下載位置
鏈接:https://pan.baidu.com/s/1lBQ0jZC6MGj9zfV-dEiguw
密碼:13xi
并使用Hadoop內(nèi)部方法完成基本配置。其中output是自動創(chuàng)建的,無需手工創(chuàng)建
返回值為0,表示格式化成功
測試顯示結(jié)果
創(chuàng)建目錄上傳
查看
上傳文件至服務(wù)端
查看
使用命令查看結(jié)果
刪除并查看其顯示結(jié)果
配置下線用戶為server3
簡介:
在典型的HA集群中,通常有兩臺不同的機器充當NN(namenode),在任何時間,只有一臺機器處于active狀態(tài),另一臺機器則處于standby狀態(tài),active NN負責集群中所有客戶端的操作,而standby NN主要用于備用,主要維持足夠的狀態(tài),如果有必要,可以提供快速的故障恢復(fù)
為了讓standby NN狀態(tài)和 active NN 保持同步,及元數(shù)據(jù)保持一致,他會都會和journalnodes 守護進程通信,當active NN 執(zhí)行任何有關(guān)命名空間的修改,他都需要持久化到一半以上的journalnodes 上(通過edits log 持久化存儲),而standby NN負責觀察edits log 的變化,他能夠從JNS 中讀取edits 信息,并更新其內(nèi)部的名稱空間,一旦active NN 出現(xiàn)故障,standby NN 會將保證從JNS中讀取了全部edits,然后切換成active 狀態(tài),standby NN讀取全部的edits 可確保發(fā)生故障轉(zhuǎn)移之前,是和active NN擁有完全同步的命名空間狀態(tài)
為了提供快速的故障恢復(fù),standby NN也需要保存集群中各個文件塊的存儲位置,為了實現(xiàn)這個,集群中的所有Datanode 將配置好的active NN和standby NN的位置,并向他們發(fā)送快文件所在的位置及心跳。
為了部署HA 集群,你需要準備以下事項:
(1)、NameNode machines:運行Active NN 和Standby NN 的機器需要相同的硬件配置;
(2)、JournalNode machines:也就是運行JN 的機器。JN 守護進程相對來說比較輕量,所以這些守護進程可以可其他守護線程(比如NN,YARN ResourceManager)運行在同一臺機器上。在一個集群中,最少要運行3 個JN 守護進程,這將使得系統(tǒng)有一定的容錯能力。當然,你也可以運行3 個以上的JN,但是為了增加系統(tǒng)的容錯能力,你應(yīng)該運行奇數(shù)個JN(3、5、7 等),當運行N 個JN,系統(tǒng)將最多容忍(N-1)/2 個JN 崩潰。在HA 集群中,Standby NN 也執(zhí)行namespace 狀態(tài)的checkpoints,所以不必要運行Secondary NN、CheckpointNode 和BackupNode;事實上,運行這些守護進程是錯誤的。
zookeeper 至少為三臺,總結(jié)點數(shù)為奇數(shù)個
A 指定hdfs的nameservices 為master
B 定義namenode節(jié)點(server1 server5 )
C 指定namenode 元數(shù)據(jù)在journalNode上的存放位置
D指定journalnode在本地磁盤存放數(shù)據(jù)的位置
E 開啟namenode 失敗自動切換,及自動切換實現(xiàn)方式,隔離機制方式以及使用sshfence 隔離機制需要ssh免密以及隔離機制超時時間等參數(shù)
斷開主節(jié)點查看情況
則切換到server5上
查看server5 狀態(tài)
啟動server1
查看server1狀態(tài)
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。