hadoop環境搭建

一 hadoop 簡介

1 Hadoop 整體框架

Hadoop 由HDFS 、MapReduce、HBASE、hive 和zookeeper 等成員組成,其中最
基礎最重要的元素是底層用於存儲集羣中所有存儲節點文件的文件系統HDFS 來
執行MapReduce 程序的MapReduce 引擎
hadoop環境搭建

1 pig 是一個基於Hadoop 的大規模數據分析平臺,pig 爲複雜的海量數據並行計
算提供了一個簡單的操作和編程接口
2 hive 是基於Hadoop 的一個工具,提供完整的SQL 查詢,可以將sql 語句轉換
爲MapReduce (映射)任務進行執行
3 zookeeper:高效的,可擴展的協調系統,存儲和協調關鍵共享狀態
4 HBASE 是一個開源的,基於列存儲模型的分佈式數據庫
5 hdfs 是一個分佈式文件系統,具有高容錯的特點,適合於那些超大數據集的應
用程序,
6 MapReduce 是一種編程模式,用於大規模數據集的並行計算

2 hadoop 集羣部署結構

hadoop環境搭建
hadoop環境搭建

3 hadoop 核心設計

hadoop環境搭建

1 HDFS

是一個高度容錯性的分佈式文件系統,可以被廣泛的部署於廉價的PC 上,他以流式訪問模式訪問應用程序的數據,這樣可以提高系統的數據吞吐量,因而非常適合用於具有超大數據集的應用程序中
hadoop環境搭建
HDFS 架構採用主從架構,一個HDFS 集羣應該包含一個namenode 節點和多個datanode 節點,name node 負責整個HDFS 文件系統中的文件元數據的保管和管理,集羣中通常只有一臺機器上運行namenode,datanode 節點保存文件中的數據,集羣中的機器分別運行一個datenode 實例,在HDFS 中,namenode 節點稱爲名稱節點,DataNode 稱爲數據節點,DataNode 通過心跳機制與namenode 節點進行定時通信Namenode 相當於mfs 中的master serverDatanode 相當於mfs 中的chunk server

2 HDFS 的讀寫方式
寫入
hadoop環境搭建

文件寫入:如上圖
1 客戶端向nameode (master server ) 發起文件寫入請求
2 namenode 根據文件大小和文件塊配置情況,返回給客戶端DataNode 信息
(chunkserver)
3 client 將文件劃分成多個文件塊,根據DataNode 的地址信息,按順序寫入每個
DataNode 中

讀取
hadoop環境搭建
步驟:
1 向namenode 發送讀取請求
2 namenode 返回文件位置列表
3 client 根據列表讀取文件信息

2 MapReduce

是一種編程模型,用於大規模數據集並行計算,map(映射)和reduce(化簡),採用分佈方式,(分封制),先把任務分發到集羣節點上,並行計算,然後將結果合併,多結點計算,涉及的任務調度,負載均衡,容錯,都有MapReduce 完成

hadoop環境搭建

用戶提交任務給job tracer ,job tracer 把對應的用戶程序中的map 個reduce 操作映射到tasktracee 節點中,輸入模塊負責把輸入數據數據分成小數據塊,然後把它們傳遞給map 節點,map 節點得到每一個key/value 對,然後產生一個或多個key/value 對,然後寫入文件,reduce 節點獲取臨時文件中的數據,對帶有相同key 的數據進行迭代計算,後將最終結果寫入文件

hadoop環境搭建

Hadoop 的核心是MapReduce,而MapReduce 的核心又在於map 和reduce 函數。它們是交給用戶實現的,這兩個函數定義了任務本身。

map 函數:接受一個鍵值對(key-value pair)(例如上圖中的Splitting 結果),產生一組中間鍵值對(例如上圖中Mapping 後的結果)。Map/Reduce 框架會將map 函數產生的中間鍵值對裏鍵相同的值傳遞給一個reduce 函數。
reduce 函數:接受一個鍵,以及相關的一組值(例如上圖中Shuffling 後的結果),將這組值進行合併產生一組規模更小的值(通常只有一個或零個值)(例如上圖中Reduce 後的結果)
但是,Map/Reduce 並不是萬能的,適用於Map/Reduce 計算有先提條件:
(1)待處理的數據集可以分解成許多小的數據集;
(2)而且每一個小數據集都可以完全並行地進行處理;
若不滿足以上兩條中的任意一條,則不適合適用Map/Reduce 模式。

二 環境搭建

軟件下載位置
鏈接:https://pan.baidu.com/s/1lBQ0jZC6MGj9zfV-dEiguw
密碼:13xi

1 配置hadoop 用戶

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

2 下載並解壓相關軟件

hadoop環境搭建
hadoop環境搭建

3 修改環境變量,使得hadoop運行在Java平臺之上

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

4 修改java環境變量,使其可以查看到hadoop進程開啓狀態

hadoop環境搭建
hadoop環境搭建

5 查看

hadoop環境搭建

二 單節點部署

1 創建文件夾,並將數據導入用於測試單節點,

並使用Hadoop內部方法完成基本配置。其中output是自動創建的,無需手工創建
hadoop環境搭建

2 查看其統計結果

hadoop環境搭建
hadoop環境搭建

三 僞節點部署

1 配置文件系統管理相關

hadoop環境搭建
hadoop環境搭建

2 配置文件保存的份數

hadoop環境搭建
hadoop環境搭建

3 配置hadoop密碼並設置ssh免密認證

hadoop環境搭建
hadoop環境搭建

4 配置datanode節點

hadoop環境搭建

5 namenode節點格式化

hadoop環境搭建
返回值爲0,表示格式化成功
hadoop環境搭建

6 啓動服務並查看進程狀態

hadoop環境搭建
測試顯示結果
hadoop環境搭建

7 測試

創建目錄上傳
hadoop環境搭建
查看
hadoop環境搭建
hadoop環境搭建
上傳文件至服務端
hadoop環境搭建
查看
hadoop環境搭建
使用命令查看結果
刪除並查看其顯示結果
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

8 高級配置:mapred配置

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

9 啓動服務並查看

hadoop環境搭建

10 查看是否成功

hadoop環境搭建

四 分佈式配置

1 停止之前的僞節點配置

hadoop環境搭建

2 在超級用戶下安裝服務用以共享存儲

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

3 啓動服務

hadoop環境搭建

4 配置共享存儲

hadoop環境搭建
hadoop環境搭建

5 刷新看是否成功

hadoop環境搭建

6 客戶端啓動服務並掛載掛載

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

7 查看配置

hadoop環境搭建
hadoop環境搭建

8 配置datanode節點

hadoop環境搭建
hadoop環境搭建

9 配置備份存儲數量

hadoop環境搭建
hadoop環境搭建

10 格式化namenode節點

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

11 設置免密

hadoop環境搭建

12 啓動服務並查看

hadoop環境搭建

13 datanode節點查看服務

hadoop環境搭建

14 查看datanode節點是否存在並正常掛載

hadoop環境搭建
hadoop環境搭建

五 在線添加節點

1 安裝並配置基礎環境

hadoop環境搭建

2 啓動服務並掛載

hadoop環境搭建

3 配置datanode節點

hadoop環境搭建
hadoop環境搭建

4 配置免密認證

hadoop環境搭建

5 啓動服務並查看其進程

hadoop環境搭建

6 查看其是否加入存儲系統中

hadoop環境搭建
hadoop環境搭建

六 節點數據遷移

1 創建數據目錄並上傳數據

hadoop環境搭建

2 查看是否上傳成功

hadoop環境搭建

3 查看其各個節點存儲狀態

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

4 配置下線

hadoop環境搭建
hadoop環境搭建
配置下線用戶爲server3
hadoop環境搭建
hadoop環境搭建

5 生效配置文件

hadoop環境搭建

6 查看serever3狀態,如果爲normal 則表示遷移完成,否則未完成

hadoop環境搭建
hadoop環境搭建

7 查看其他節點存儲,發現存儲已經增加,則表明數據遷移完成

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

8 關閉datanode節點,下線成功

hadoop環境搭建

9 開啓其他節點的nodemanager服務

hadoop環境搭建

七 高可用

簡介:
在典型的HA集羣中,通常有兩臺不同的機器充當NN(namenode),在任何時間,只有一臺機器處於active狀態,另一臺機器則處於standby狀態,active NN負責集羣中所有客戶端的操作,而standby NN主要用於備用,主要維持足夠的狀態,如果有必要,可以提供快速的故障恢復

爲了讓standby NN狀態和 active NN 保持同步,及元數據保持一致,他會都會和journalnodes 守護進程通信,當active NN 執行任何有關命名空間的修改,他都需要持久化到一半以上的journalnodes 上(通過edits log 持久化存儲),而standby NN負責觀察edits log 的變化,他能夠從JNS 中讀取edits 信息,並更新其內部的名稱空間,一旦active NN 出現故障,standby NN 會將保證從JNS中讀取了全部edits,然後切換成active 狀態,standby NN讀取全部的edits 可確保發生故障轉移之前,是和active NN擁有完全同步的命名空間狀態

爲了提供快速的故障恢復,standby NN也需要保存集羣中各個文件塊的存儲位置,爲了實現這個,集羣中的所有Datanode 將配置好的active NN和standby NN的位置,並向他們發送快文件所在的位置及心跳。
爲了部署HA 集羣,你需要準備以下事項:
(1)、NameNode machines:運行Active NN 和Standby NN 的機器需要相同的硬件配置;
(2)、JournalNode machines:也就是運行JN 的機器。JN 守護進程相對來說比較輕量,所以這些守護進程可以可其他守護線程(比如NN,YARN ResourceManager)運行在同一臺機器上。在一個集羣中,最少要運行3 個JN 守護進程,這將使得系統有一定的容錯能力。當然,你也可以運行3 個以上的JN,但是爲了增加系統的容錯能力,你應該運行奇數個JN(3、5、7 等),當運行N 個JN,系統將最多容忍(N-1)/2 個JN 崩潰。在HA 集羣中,Standby NN 也執行namespace 狀態的checkpoints,所以不必要運行Secondary NN、CheckpointNode 和BackupNode;事實上,運行這些守護進程是錯誤的。

1 DHFS 高可用

1 關閉之前的服務

hadoop環境搭建

2 查看各節點配置

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

3 配置服務

hadoop環境搭建
hadoop環境搭建

4 刪除原有配置

hadoop環境搭建

5 清空原有配置,以防影響

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

6 配置安裝服務zookeeper

zookeeper 至少爲三臺,總結點數爲奇數個
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

7 啓動服務

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

8 查看那個是leader

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

9 在leader 上啓動服務並查看相關配置

hadoop環境搭建
hadoop環境搭建

10 配置集羣相關配置

1 配置指定hdfs的namenode 爲master(名稱隨意)指定zookeeper 集羣主機地址(server2,server3,server4的IP地址)

hadoop環境搭建
hadoop環境搭建

2 編輯hdfs-site.xml文件

hadoop環境搭建
A 指定hdfs的nameservices 爲master
hadoop環境搭建
B 定義namenode節點(server1 server5 )
hadoop環境搭建
C 指定namenode 元數據在journalNode上的存放位置
hadoop環境搭建
D指定journalnode在本地磁盤存放數據的位置
hadoop環境搭建
E 開啓namenode 失敗自動切換,及自動切換實現方式,隔離機制方式以及使用sshfence 隔離機制需要ssh免密以及隔離機制超時時間等參數
hadoop環境搭建

11 配置server5進行掛載

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

12 啓動日誌服務器server2 server3 server4

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

13 格式化namenode

hadoop環境搭建
hadoop環境搭建

14 將生成的數據發送到另一個高可用節點

hadoop環境搭建

15 配置免密認證

hadoop環境搭建

16 啓動zkfc服務

hadoop環境搭建

17 查看服務

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

18 驗證高可用,關閉服務

hadoop環境搭建
hadoop環境搭建

hadoop環境搭建

hadoop環境搭建

hadoop環境搭建

2 高可用之 YARN

hadoop環境搭建

1 指定yarn的框架爲mapreduce

hadoop環境搭建

hadoop環境搭建

2 配置可以在nodemanager上運行mapreduce程序

hadoop環境搭建

3 激活RM高可用

hadoop環境搭建

4 指定RM的集羣ID

hadoop環境搭建

5 定義RM節點

hadoop環境搭建
hadoop環境搭建

6激活RM 自動恢復

hadoop環境搭建

7 配置RM狀態信息存儲方式,有memstore和ZKstore

hadoop環境搭建

8 配置爲zookeeper 存儲時,指定ziikeeper集羣的地址

hadoop環境搭建

9啓動yarn 服務並查看

hadoop環境搭建

10 另一個節點需要手工啓動服務

hadoop環境搭建

11 查看集羣狀態

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

12 測試

斷開主節點查看情況
hadoop環境搭建
則切換到server5上
hadoop環境搭建
查看server5 狀態
hadoop環境搭建
啓動server1
hadoop環境搭建
查看server1狀態
hadoop環境搭建

3 服務的關閉方式

hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建
hadoop環境搭建

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章