1. 程式人生 > >Hadoop學習筆記—13.分散式叢集中節點的動態新增與下架

Hadoop學習筆記—13.分散式叢集中節點的動態新增與下架

開篇:在本筆記系列的第一篇中,我們介紹瞭如何搭建偽分佈與分佈模式的Hadoop叢集。現在,我們來了解一下在一個Hadoop分散式叢集中,如何動態(不關機且正在執行的情況下)地新增一個Hadoop節點與下架一個Hadoop節點。

一、實驗環境結構

  本次試驗,我們構建的叢集是一個主節點,三個從節點的結構,其中三個從節點的效能配置各不相同,這裡我們主要在虛擬機器中的記憶體設定這三個從節點分別為:512MB、512MB與256MB。首先,我們暫時只設置兩個從節點,另外一個作為動態新增節點的時候使用。主節點與從節點所扮演的角色如下所示:

  主節點(1個,主機名:hadoop-master):NameNode、JobTracker、SecondaryNameNode

  從節點(3個,主機名:hadoop-slave1、hadoop-slave2、hadoop-slave3):DataNode、TaskTracker

TIPS:當然,我們也可以將SecondaryNameNode作為一個獨立的節點分離出去,只需要增加一臺伺服器,並在主節點中修改hadoop中的配置檔案:masters,將新節點的主機名新增進去即可。

二、動態新增節點

  在實際生產應用中,很多時候因為現有叢集的效能問題需要增加伺服器節點以提高整體效能(一般是增加從節點,在Hadoop2.x之後解決了主節點的單點問題,可以增加主節點以保持HA高可用性),這就涉及到動態新增節點的問題。還好,Hadoop早就提供了很好的解決方法,我們只需要如下幾步就可以輕鬆地新增一個節點:

  (1)準備工作:配置新節點的各種環境

  主要包括:設定IP地址、主機名、繫結IP地址與主機名的對映、生成SSH與各節點之間的無密碼登入、安裝JDK與Hadoop、設定配置檔案;當然,都可以通過複製解決;

  (2)在主節點中的slaves配置檔案中新增要新加入的節點的主機名hadoop-slave3(在hadoop目錄下/conf/slaves)

  (3)在新節點hadoop-slave3中,通過Hadoop Shell啟動datanode與tasktracker程序:

  這兩句shell命令分別是:

  hadoop-daemon.sh start datanode


  hadoop-daemon.sh start tasktracker

  (4)在主節點中通過Hadoop Shell重新整理從節點列表,獲取新加入的節點資訊:hadoop dfsadmin -refreshNodes

  (5)在主節點的Web介面中檢視Live Nodes數量變為了3,代表動態新增從節點成功

三、動態下架節點

  在實際生產應用中,也會存在某個節點或某些節點因為某種原因而停止服務或者宕機的情況,Hadoop會通知一定的感知機制得到這些停止服務的節點的資訊,從而通過其他節點獲取檔案(前提是我們所設定的副本數量>=2,預設為3)。

  (1)通過關閉hadoop-slave3的電源或者輸入一個shell命令停止datanode程序:hadoop-daemon.sh stop datanode

  ->這裡我們可以通過後者,這個shell命令來看看

  (2)我們現在再通過主節點的Web介面來看看執行情況:

PS:停止hadoop-slave3的datanode程序後發現,NameNode的Web介面上hadoop-slave節點的LastContact欄位的值會不斷地增大。這是因為DataNode每次啟動時都會向NameNode彙報,NameNode會記錄下它的訪問時間,然後NameNode用當前訪問時間減去上次訪問時間,就得出LastContact的值,也就是多長時間未訪問。又由於實際環境中經常存在網路問題造成短暫掉線,所以NameNode會等待一段時間(預設等10分鐘)之後,才會將它視為死節點。所以,為了防止資料丟失所以在實際中副本數一般會設為2以上(預設為3),當某個節點死掉以後,可以通過副本找回資料。

  (3)重新啟動hadoop-slave3的datanode程序:hadoop-daemon.sh start datanode

  (4)現在再次通過主節點的Web介面來看看執行情況:變為了0

四、Hadoop中的安全模式

  當Hadoop的NameNode節點啟動時,會進入安全模式階段。

  (1)在此階段,DataNode會向NameNode上傳它們資料塊的列表,讓 NameNode得到塊的位置資訊,並對每個檔案對應的資料塊副本進行統計。當最小副本條件滿足時,即一定比例的資料塊都達到最小副本數,系統就會退出安全模式,而這需要一定的延遲時間。

  (2)當最小副本條件未達到要求時,就會對副本數不足的資料塊安排DataNode進行復制,直至達到最小副本數。而在安全模式下,系統會處於只讀狀態,NameNode不會處理任何塊的複製和刪除命令。

  那麼,如何判斷HDFS是否處於安全模式呢?hadoop dfsadmin -safemode get

  如何手動進入和離開安全模式呢?hadoop dfsadmin -safemode enter/leave

  進入安全模式後,再向HDFS上傳或修改檔案會出現什麼情況?一個提示“正在處於安全模式”的異常

  org.apache.hadoop.dfs.SafeModeException: Cannotdelete/user/hadoop/input. Name node is in safe mode.從字面上來理解:“Name nodeis in safe mode.”hadoop的namenode處於安全模式。

參考資料

作者:周旭龍

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連結。

相關推薦

Hadoop學習筆記13.分散式叢集節點動態新增

開篇:在本筆記系列的第一篇中,我們介紹瞭如何搭建偽分佈與分佈模式的Hadoop叢集。現在,我們來了解一下在一個Hadoop分散式叢集中,如何動態(不關機且正在執行的情況下)地新增一個Hadoop節點與下架一個Hadoop節點。 一、實驗環境結構   本次試驗,我們構建的叢集是一個主節點,三個從節點的結構,

Hadoop學習筆記13.分布式集群節點動態添加

情況 好的 當前 每次 原因 修改 輸入 task tle 開篇:在本筆記系列的第一篇中,我們介紹了如何搭建偽分布與分布模式的Hadoop集群。現在,我們來了解一下在一個Hadoop分布式集群中,如何動態(不關機且正在運行的情況下)地添加一個Hadoop節點與下架一個Had

Hadoop學習筆記(二)----環境搭建之CentOS 7 配置安裝Hadoop

# Load additional iptables modules (nat helpers) #   Default: -none- # Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which # are load

html元素動態新增刪除

<div class="unit" > <label>產品引數</label> <input type="button" value="新增" onclick="addProduc

Hadoop學習筆記(三) 安裝Hadoop分散式叢集

執行環境 因為是為了學習,且只有一臺PC,只能在虛擬機器裡安裝Hadoop 軟體配置 版本 主機 Win7,記憶體8G 虛擬機器 VMware 14 Linux ubuntu-14.04.5-desktop (使用ubuntu-18或1

Hadoop學習筆記(二)設定單節點叢集

本文描述如何設定一個單一節點的 Hadoop安裝,以便您可以快速執行簡單的操作,使用HadoopMapReduce和Hadoop分散式檔案系統(HDFS)。Hadoop版本:Apache Hadoop 2.5.1系統版本:CentOS 6.5,核心(uname -r):2.6

Kali學習筆記13:Scapy在二層發現的使用

發送 kali 文件 查詢 一個 mac地址 調用函數 學習筆記 開啟 直接輸入scapy,發現丟失文件或者有錯誤 這時候,輸入這行即可: 耗時不多,發現下載完成之後就可以正常開啟scapy了! 簡單使用方式:就像調用函數的方式: 示例:這裏我要定制一個ARP數據

SpringBoot學習筆記(13)----使用Spring Session+redis實現一個簡單的叢集

  session叢集的解決方案: 1.擴充套件指定server 利用Servlet容器提供的外掛功能,自定義HttpSession的建立和管理策略,並通過配置的方式替換掉預設的策略。缺點:耦合Tomcat/Jetty等Servlet容器,不能隨意更換容器。 2.利用Filter 利用Ht

Redis學習筆記七——向叢集節點新增、刪除和分配slot

上邊文章講了如何搭建redis叢集,這邊文章講叢集節點的新增、刪除和重新分配slot。 1、新增節點 新增節點:redis-trib.rb add-node 192.168.72.100:7006

Hadoop學習筆記(8)-簡述分散式資料庫Hbase原理

1.Hbase簡介 Hbase是一個分散式可擴充套件的NoSQL資料庫,提供對結構化,半結構化,非結構化大資料的實時讀寫和隨機訪問能力,而且操作速度與資料量基本無關,所以可以用於海量資料處理。Hbase之於HDFS就類似於資料庫之於檔案系統。自然Hbase是建

Hadoop學習筆記—11.MapReduce的排序和分組

一、寫在之前的 1.1 回顧Map階段四大步驟   首先,我們回顧一下在MapReduce中,排序和分組在哪裡被執行:   從上圖中可以清楚地看出,在Step1.4也就是第四步中,需要對不同分割槽中的資料進行排序和分組,預設情況下,是按照key進行排序和分組。 1.2 實驗場景資料檔案   在一

Hadoop學習筆記—12.MapReduce的常見演算法

一、MapReduce中有哪些常見演算法   (1)經典之王:單詞計數     這個是MapReduce的經典案例,經典的不能再經典了!   (2)資料去重     "資料去重"主要是為了掌握和利用並行化思想來對資料進行有意義的篩選。統計大資料集上的資料種類個數、從網站日誌中計算訪問地等這些看似龐

Hadoop學習筆記(3)-搭建Hadoop分散式

0.前言 1.配置core-site.xml檔案 配置hadoop目錄下的etc/Hadoop/core-site.xml檔案。 新增如下內容: 官網上只配置了fs.defaultFS引數,這個引數是配置hdfs的url地址。配置好後就可

Git 的物件模型和檔案的詳細檢視 —— Git 學習筆記 13

Git 中的物件模型和檔案的詳細檢視 本文將用幾幅圖來視覺化一個叫file1的檔案從修改到暫存,再到提交的整個過程。相信會對你理解 Git 有一些幫助。 初始狀態 初始狀態如下圖所示: 可以看到,工作目錄包含file1和file2兩個檔案,分別包含內容 “f

Hadoop學習筆記-入門偽分散式配置(Mac OS,0.21.0,Eclipse 3.6)

11/09/04 22:32:33 WARN conf.Configuration: DEPRECATED: hadoop-site.xml found in the classpath. Usage of hadoop-site.xml is deprecated. Instead use core-s

hadoop學習筆記-HDFS的REST接口

字段 edi -o created hadoop ftw rar hdfs lang 在學習HDFS的過程中,重點關註了HDFS的REST訪問接口。以前對REST的認識非常籠統,這次通過對HDFS的REST接口進行實際操作,形成很直觀的認識。 1? 寫文件操作 寫文件

Hadoop 學習筆記 (2) -- 關於MapReduce

規模 pre 分析 bsp 學習筆記 reduce 數據中心 階段 圖例 1. MapReduce 定義: 是一種可用於數據處理的編程的模型 優勢: MapReduce 本質上是並行運行的,因此可以將大規模的數據分析任務,分發給任何一個擁有足夠多機器

Java學習筆記-13.創建窗口和程序片

pri let tostring 離開 窗口 dbo solid n) height 1.init()方法:程序片第一次被創建,初次運行初始化程序片時調用。 start()方法:每當程序片進入web瀏覽器中,並且允許程序片啟動他的常規操作時調用(特殊的程序片被sto

Android第一行代碼學習筆記二---在活動使用Toast

一行代碼 就會 onclick log sta contex instance and undle Toast:是Android系統提供的一種非常好的提醒方式,在程序中可以使用它將一些短小的信息通知給用戶,這些信息會在一段時間後自動消失,並且不會占用任何屏幕空間。 首先需要

9.Laravel5學習筆記:在laravel註冊自己的服務到容器

pri script -128 ring nts date require 一次 name 問題描寫敘述 或許標題寫的不夠清楚。實際情況是,在我使用laravel的過程中。須要將自己的一個類,通過服務提供者註冊到IOC容器中,可是在實際操作過程中。