Hadoop集群破壞試驗可靠性驗證

集群環境說明:

準備5臺服務器,hadoop1、hadoop2、hadoop3、hadoop4、hadoop5;
分別部署5個節點的zookeeper集群、hadoop集群、hbase集群

本次對于Hadoop集群測試主要分為五個方面:

  1. 手動進行datanode節點刪除:(陣列卡電池損壞或者添加內存條等情況需要停機,需要手動刪除節點,停止服務器運行)無需重啟集群服務,保證文件系統的高可用性,數據的完整性,最后驗證block副本數目在節點刪除后是否恢復到默認設置(即3個副本)
  2. 手動進行datanode節點添加:(有淘汰的舊服務器不使用了,加入hadoop集群增加集群存儲容量及節點數等)無需重啟集群服務,驗證數據的可靠性,架構的可擴展性,數據完整性等。
  3. datanode節點被動刪除:(服務器主板損壞,網絡故障、操作系統故障等導致主機宕機)
    datanode每三秒種向namenode發送心跳如果10分鐘沒有發送心跳,則namenode認為該datanode已經dead,namenode將取出該datanode上對應的block,對其進行復制。
    測試過程,在hadoop的文件系統上創建一個30M文件,查看block副本文件的具體分布在哪三個datanode上面,確保第四個節點上 無此副本,對其中一個節點執行關機操作,等待10分鐘后,namenode節點確認datanode死掉后對其block副本進行復制。查看第四個 datanode上是否有新的block副本,即:副本數目又達到3個。驗證正常后下載文件,看文件是否能正常使用。
  4. Datanode節點的磁盤損壞(所有磁盤完全壞掉,或者只是存放block副本的磁盤損壞)
    此節點DataNode正常服務,壞掉的磁盤上的數據盡快通知Namenode,namenode對數 據塊進行復制,查看第四個datanode節點上是否新增了數據塊(所損壞磁盤的datanode上存儲的數據塊)
  5. 人為原因操作失誤刪除了datanode節點上的數據塊(此情況與4的磁盤損壞相似)
    手動刪除block數據塊存放目錄下的block文件,看一下多長時間恢復,在哪里恢復?

故障場景一、

手動刪除集群中任何一臺datanode數據節點
【測試描述】
模擬集群中hadoop2數據節點故障(datanode節點數量應該大于dfs.replication設置的文件塊復制數,否則在刪減datanode時不會成功,一直處于Decommission in process的狀態)

【測試步驟】

  1. 把每個datanode節點的Block數量重定向一個目標文件為1.txt
  2. 本地上傳一個30M的file.222文件到hdfs文件系統中,驗證是否只有3個datanode節點有數據塊?
  3. 再次統計每個datanode節點的Block數量重定向到目標文件2.txt,并且與1.txt文件比較有沒有增加數據Block
    a) hadoop2數據節點已增加一個數據塊
    b) hadoop3數據節點已增加一個數據塊
    c) hadoop4數據節點已增加一個數據塊
    d) hadoop5數據節點未增加一個數據塊
  4. 在namenode節點hadoop家目錄的conf目錄下新建一個excludes的文件,寫上需要remove的節點IP地址,一行只能一個IP。
  5. 修改namenode節點的主配置文件core-site.xml,在configuration內增加如下內容:
  6. 在namenode節點執行hadoop dfsadmin –refreshNodes命令,它不用重啟集群服務去讀取core-site.xml配置文件,也會在后臺進行Block塊的移動,從移除的Nodes上移動到其它的Nodes上面。
  7. 通過hadoop dfsadmin –report查看集群狀態能查看到數據是否移除完畢。只有hadoop2數據節點狀態是移除狀態。
    觀察一段時間后,等Decommissioned in progress狀態變為Decommissioned后,表示此移除的Nodes節點上的所有數據塊已全部被復制到其它工作正常的Nodes上,應為3份。
    網頁上也會顯示把移除的節點剔除列表
  8. 驗證hadoop5數據節點是否有上傳過30M文件的數據塊
  9. 下載hdfs文件系統中的file.222文件到本地,并且驗證hbase是否可用

【測試結果】
hadoop集群中手動刪除任何其中一臺datanode節點,對文件系統沒有任何影響。

故障場景二、

手動增加一臺datanode數據節點到集群
【測試描述】
模擬往正在運行的hadoop集群中增加一臺datanode數據節點,驗證是否影響文件系統的使用?
【測試步驟】

  1. 新datanode節點上部署jdk、hadoop、hbase、zookeeper軟件,保證和所以集群中的機器的目錄結構一致。并且配置相應的環境變量。
  2. 在新datanode節點和namenode節點之間建立無密碼認證關系。實現互相登錄不需要密碼。
  3. 設置datanode節點的hosts文件和集群中所有的機器hosts文件一致。
  4. Namenode節點的slaves文件增加上相應的節點,并且Namenode的hosts文件也增加新節點。
  5. 在新節點啟動datanode和tasktracker進程。如下圖已把hadoop2數據節點加入到hadoop集群中了。中間一些其余的截圖已省略。

【測試結果】
往hadoop集群中手動增加一臺datanode不影響文件系統和hbase數據庫的查看和使用。

故障場景三、

集群中其中一臺datanode數據節點出現自動宕機故障。(此方法有點類似第一種)
【測試描述】
模擬hadoop集群中其中一臺datanode數據節點宕機故障,驗證是否影響文件系統和hbase的使用?

【測試步驟】

  1. 本地上傳一個大小為30M的文件上傳到集群文件系統。
  2. 查看哪三臺機器上面有Block塊的新增。分別是hadoop2、hadoop4、hadoop5三臺機器
  3. 在任何一臺有數據塊的datanode節點執行關機操作,這里選擇hadoop4機器。
  4. 觀察集群的狀態,Last Contact表示最后一次檢查時間
    十分鐘之后再刷新一下網頁會顯示,宕機的節點已經被自動從集群中踢除了。
  5. 查看hadoop2主機沒有Block塊文件的節點是否已經有塊文件復制過去?這樣就實現達到了復制三份的目的了。
  6. 驗證能否從文件系統下載test.file文件和hbase的使用?

【測試結果】
hadoop集群中任何一臺datanode節點意外宕機,不會影響文件系統和hbase的使用。

故障場景四

集群中其中一臺datanode數據節點硬盤故障。
【測試描述】
模擬hadoop集群中其中一臺datanode數據節點硬盤故障,驗證是否影響文件系統和hbase的使用?

【測試步驟】

  1. 手動拔掉hadoop2節點的所有硬盤,hadoop集群仍然運行
  2. namenode節點會檢查每個正常工作datanode的文件塊是否都為3份,如果不是則會備份成3份放到正常工作的datanode節點中。
  3. 在任何別的節點上查看和讀取文件系統的數據一切正常。
  4. hbase也一切正常。

【測試結果】
hadoop集群中任何節點的硬盤故障對數據存儲的完整性無影響。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212404.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212404.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212404.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

typedef 與#define 的區別

typedef 與#define 的區別 typedef : 給一個已經存在的數據類型(注意:是類型不是變量)取一個別名,而非定義一個新的數據類型 #define宏定義: #define宏定義:在預編譯時直接進行簡單的文本替換 舉…

WIFI直連(Wi-Fi P2P)

一、概述 Wifi peer-to-peer(也稱Wifi-Direct)是Wifi聯盟推出的一項基于原來WIfi技術的可以讓設備與設備間直接連接的技術,使用戶不需要借助局域網或者AP(Access Point)就可以進行一對一或一對多通信。這種技術的應用…

計算機畢業設計 SpringBoot的樂樂農產品銷售系統 Javaweb項目 Java實戰項目 前后端分離 文檔報告 代碼講解 安裝調試

🍊作者:計算機編程-吉哥 🍊簡介:專業從事JavaWeb程序開發,微信小程序開發,定制化項目、 源碼、代碼講解、文檔撰寫、ppt制作。做自己喜歡的事,生活就是快樂的。 🍊心愿:點…

Xmanager

什么是 XManager Xmanager 是市場上領先的 PC X 服務器,可將X應用程序的強大功能帶入 Windows 環境。 提供了強大的會話管理控制臺,易于使用的 X 應用程序啟動器,X 服務器配置文件管理工具,SSH 模塊和高性能 PC X 服務器。 Xman…

javaScript(六):DOM操作

文章目錄 1、DOM介紹2、DOM:獲取Element對象3、DOM:事件監聽3.1、事件介紹3.2、常見事件3.3、設置事件的兩種方式3.4、事件案例 1、DOM介紹 概念 Document Object Model ,文檔對象模型 將標記語言的各個組成部分封裝為對應的對象&#xff1a…

Realme X7 Pro Root 刷機教程

Realme X7 Pro 刷機教程 Just For Fun,最近倒騰了下Realme X7 Pro 刷root。此博客為個人記錄刷機過程,如有機友跟隨本教程操作,請謹慎操作!!! 以下教程真針對Realme X7 Pro,其他版本方法未知&…

springboot(ssm高校競賽管理系統 在線競賽平臺 Java系統

springboot(ssm高校競賽管理系統 在線競賽平臺 Java系統 開發語言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服務器:tomcat 數據庫:mysql 5.7(或8.0) 數…

qt 模型視圖結構

在Qt中,Model、View和Delegate三者之間的關系如下: Model(模型):Model是數據的抽象表示,它提供了一種結構化的方式來存儲和管理數據。Model負責維護數據的狀態,并提供接口供其他組件&#xff08…

【Flutter】vs2022上開發flutter

在vs上開發flutter,結果擴展倉庫上沒辦法找到Dart,Flutter。 在 這 搜索Dart時也無法找到插件。 最后發現是安裝工具出錯了 安裝了 開發需要的是

挖漏洞之文件上傳

(一)漏洞原理 文件上傳漏洞是指由于程序員在對用戶文件上傳部分的控制不足或者處理缺陷,而導致的用戶可以越過其本身權限向服務器上上傳可執行的動態腳本文件。這里上傳的文件可以是木馬,病毒,惡意腳本或者WebShell等。…

從線性回歸到神經網絡

目錄 一、線性回歸關鍵思想 1、線性模型 2、基礎優化算法 二、線性回歸的從零開始實現 1、生成數據集 2、讀取數據集 3、初始化模型參數 4、定義模型 5、定義損失函數 6、定義優化算法 7、訓練 三、線性回歸的簡潔實現 1、生成數據集 2、讀取數據集 3、定義模型…

論文代碼閱讀:TGN模型訓練階段代碼理解

文章目錄 [toc] TGN模型訓練階段代碼理解論文信息代碼過程手繪代碼訓練過程compute_temporal_embeddingsupdate_memoryget_raw_messagesget_updated_memoryself.message_aggregator.aggregateself.memory_updater.get_updated_memoryMemoryget_embedding_moduleGraphAttentionE…

什么是W3C標準? 什么要遵循?

Hi i,m JinXiang ? 前言 ? 本篇文章主要介紹HTML5中W3C的標準,需要遵循的規則以及部分理論知識 🍉歡迎點贊 👍 收藏 ?留言評論 📝私信必回喲😁 🍉博主收將持續更新學習記錄獲,友友們有任何問…

【AIGC】Midjourney高級進階版

Midjourney 真是越玩越上頭,真是給它的想象力跪了~ 研究了官方API,出一個進階版教程 命令 旨在介紹Midjourney在Discord頻道中的文本框中支持的指令。 1)shorten 簡化Prompt 該指令可以將輸入的Prompt為模型可以理解的語言。模型理解語言…

Git初學入門指令

git基本指令 初始化&#xff1a; git init查看狀態&#xff1a; git status新建文件&#xff1a; touch <filename>加入暫存區&#xff1a; git add . 或者 git add -A 表示全部加入暫存區 git add <filename>單個文件加入暫存區加入倉庫&#xff1a; …

PCIe中斷總結-各個中斷的區別

1.簡介&#xff1a; PCIe中斷支持三種傳輸方式&#xff1a; ? Legacy: 也稱傳統中斷&#xff0c;Legacy PCI中斷機制,每個PCI設備最多支持四個中斷信號(邊帶信號:INTA# INTB# INTC# INTD#) ? MSI(Message Signaled Interrupt): Post Memory Write,只支持32個中斷向量 ? MSI…

力扣labuladong一刷day35天

力扣labuladong一刷day35天 文章目錄 力扣labuladong一刷day35天一、98. 驗證二叉搜索樹二、700. 二叉搜索樹中的搜索三、701. 二叉搜索樹中的插入操作四、450. 刪除二叉搜索樹中的節點 一、98. 驗證二叉搜索樹 題目鏈接&#xff1a;https://leetcode.cn/problems/validate-bi…

【Linux】如何對文本文件進行有條件地劃分?——cut命令

cut 命令可以根據一個指定的標記&#xff08;默認是 tab&#xff09;來為文本劃分列&#xff0c;然后將此列顯示。 例如想要顯示 passwd 文件的第一列可以使用以下命令&#xff1a;cut –f 1 –d : /etc/passwd cut&#xff1a;用于從文件的每一行中提取部分內容的命令。-f 1&…

Sql server數據庫數據查詢

請查詢學生信息表的所有記錄。 答&#xff1a;查詢所需的代碼如下&#xff1a; USE 學生管理數據庫 GO SELECT * FROM 學生信息表 執行結果如下&#xff1a; 查詢學生的學號、姓名和性別。 答&#xff1a;查詢所需的代碼如下&#xff1a; USE 學生管理數據庫 GO SELE…

為什么需要 Kubernetes,它能做什么?

傳統部署時代&#xff1a; 早期&#xff0c;各個組織是在物理服務器上運行應用程序。 由于無法限制在物理服務器中運行的應用程序資源使用&#xff0c;因此會導致資源分配問題。 例如&#xff0c;如果在同一臺物理服務器上運行多個應用程序&#xff0c; 則可能會出現一個應用程…