Hadoop問題:DataNode進程不見了

来源:https://www.cnblogs.com/h12l4/archive/2018/05/23/9079462.html
-Advertisement-
Play Games

DataNode進程不見了 問題描述 最近配置Hadoop的時候出現了這麼一個現象,啟動之後,使用jps命令之後是這樣的: 看不到DataNode進程,但是能夠正常的工作,是不是很神奇啊? 在一番百度谷歌之後,得出了結論: 我在啟動Hadoop之前和啟動之後,曾經多次使用如下命令,針對NameNod ...


 

 
 

DataNode進程不見了

問題描述

    最近配置Hadoop的時候出現了這麼一個現象,啟動之後,使用jps命令之後是這樣的:

    看不到DataNode進程,但是能夠正常的工作,是不是很神奇啊?

    在一番百度谷歌之後,得出了結論:

    我在啟動Hadoop之前和啟動之後,曾經多次使用如下命令,針對NameNode進行格式化:

hadoop namenode -format

    這個問題,還不是你直接多次格式化造成的,而是你格式化之後,啟動了Hadoop,然後將Hadoop關閉,重新格式化,再啟動Hadoop造成的,這個時候你就發現,DataNode線程在jps命令中消失了,還能正常使用,就如我開頭的那張圖一樣。造成這個問題的根源,是NameNode和DataNode的版本號不一致所致。這個問題不僅僅會出現在偽分散式,完全分散式中也會出現。這裡以偽分散式進行展示。

    如下是正常的兩個文件的信息。

    NameNode VERSION文件信息:

namespaceID=51628800
clusterID=CID-97bb16dc-c439-427c-9841-5e6e4667cb65
cTime=0
storageType=NAME_NODE
blockpoolID=BP-1918730739-172.17.241.131-1526803461127
layoutVersion=-63

    DataNode VERSION文件信息:

storageID=DS-4281731b-7a44-4c86-8844-e1927a4fc966
clusterID=CID-97bb16dc-c439-427c-9841-5e6e4667cb65
cTime=0
datanodeUuid=197c3d68-454b-4287-a5e5-90c01ed9be53
storageType=DATA_NODE
layoutVersion=-56

    所謂版本號不一致,就是說的clusterID的值,上面的信息展示的是一致的,也表明NameNode和DataNode是一組的。

    那麼這兩個文件存放在哪裡呢?如下是你在Hadoop配置文件core-site.xml中的一項,就在此項指定的目錄之下。

	<property>
		<!--用來指定hadoop運行時產生文件的存放目錄-->	
		<name>hadoop.tmp.dir</name> 
		<value>/home/hadoop-2.7.1/tmp</value>
	</property>

    那我就以我這個配置的路徑來進行查找,首先到tmp目錄下:

    如上圖是完整的查找路徑。

問題分析

    下麵進行此問題的分析:

    當第一次格式化,啟動Hadoop的時候,沒有任何問題,任何環節都是新產生的,所以哪怕你在啟動Hadoop之前進行多次的NameNode格式化都可以,因為在Hadoop啟動之前,DataNode的版本還沒有生成,只有Hadoop啟動之後DataNode的版本等響應信息才會在指定的目錄下生成,這個時候就產生了NameNode和DataNode的一對一的關係。

    當你關掉Hadoop之後進行二次NameNode格式化的時候,NameNode的版本信息等進行了重新寫入,內容肯定和之前的不一樣,這樣就造成了,上文中我提到的clusterID不一致的問題,這樣,你再次啟動Hadoop,所有功能都正常使用,但唯獨jps命令下看不到DataNode線程,這當然會使我們每個程式員感到驚慌,怎麼辦?

解決方案

 

方案一

    首先,在格式化之前,將你設置的存儲Hadoop信息目錄下清空,即我上圖中的例子tmp目錄,將此目錄清空即可。也可直接刪除此目錄,然後新建一個。

    然後,進行格式化,這樣所產生的NameNode和DataNode信息都是新的,也都是一組的,問題就解決了,這個是最簡單最有效的方法。

方案二

    如果有數據還在,又不想清空數據,那麼這個方案就是你的福音。

    既然是版本號不一致產生的問題,那麼我們就單獨解決版本號的問題,將你格式化之後的NameNode的VERSION文件找到,然後將裡面的clusterID進行複製,再找到DataNode的VERSION文件,將裡面的clusterID進行替換,保存之後重啟,那麼就可以正常的使用了。查找的的路徑,已經在上圖中進行了展示,這裡不做贅述。

 

    就以上問題,目前我只想到兩個解決方案。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 就在昨天晚上,小王同學的電腦繼1803更新後第4次藍屏了,原本藍屏後自動重啟後就會恢復正常,然而天真的我太低估了微軟的實力。藍屏-重啟-藍屏-重啟無限迴圈 當然,重啟幾次就進入了高級模式 高級模式 進去疑難解答-高級選項,試了試啟動修複,沒用。 繼續,搜索藍屏代碼PAGE_FAULT_IN_NONP ...
  • 1、d: 進入d盤 2、dir(directory) 顯示當前文件夾下的所有內容 3、md (make directory) +文件夾名 在當前文件夾下創建文件夾 4、rd (remove directory)+文件夾名 刪除文件夾 5、del+文件名(需要尾碼) 刪除文件 6、cd (change ...
  • 在Linux系統,如果是連接ssh修改密碼,那非常簡單,關鍵是如何實現只要調用命令就能修改密碼,而且不需要交互輸入密碼呢? ...
  • systemd概述 systemd核心概念:unit systemd的service unit file詳解 實例:編譯安裝httpd,並實現通過systemd進行管理 1)通過 rpm -q httpd 命令檢查系統是否已安裝apache,如有先進行卸載; 2)下載Apache(httpd)源碼: ...
  • ./nginx 啟動服務./nginx -s stop 關閉服務./nginx -s reload 重新載入配置文件 首先我們應當安裝一個依賴的軟體包: yum install gcc-c++yum install -y pcre pcre-develyum install -y zlib zlib ...
  • 最近在做rac,在環境檢查的時候發現swap空間檢查不通過,所以我們第一想到的是對swap進行擴容,那麼swap擴容有哪些方法呢?這裡主要介紹兩種方法,一通過添加額外磁碟,擴展swap分區,二是通過本地多餘空間的方式擴展swap分區。 一、現象描述 查看內容使用情況: 查看磁碟分區掛在情況: 這裡看 ...
  • SQL Server 獲取數據的總記錄數,有兩種方式: 1.先分頁獲取數據,然後再查詢一遍資料庫獲取到總數量 2.使用count(1) over()獲取總記錄數量 第二種方式既分頁還能獲取到總記錄數量。就是多一個欄位,如果獲取一次數據較多的話,會浪費一些流量。 如果使用第一種的話,會多訪問一次資料庫 ...
  • GTID複製典型的複製錯誤有兩種:1,數據對象級別的錯誤,包括主庫上update的數據在從庫上不存在,主從逐漸衝突,庫表索引等對象的衝突等等, 如果是純粹的跳過錯誤的話,這一類的錯誤需要跳過思路是找到主庫binlog中對應的事務Id然後在從庫上跳過即可。2,日誌找不到的錯誤,也即從庫在執行利用主庫上 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...