Hadoop錯誤1_Hadoop分散式及偽分散式下DataNode不能啟動的問題
1、hadoop 完全分散式 和偽分散式下 datanode無法啟動的原因?
2、怎麼解決?
問題描述:
在叢集模式下更改節點後,啟動叢集發現 datanode一直啟動不起來。
我叢集配置:有5個節點,分別為master slave1-5 。
在master以hadoop使用者執行:start-all.sh
jps檢視master節點啟動情況:
-
NameNode
-
JobTracker
- SecondaryNameNode
均已經正常啟動,利用 master:50070 , Live Nodes 為0, 隨進入 slave1:
ssh slave1, 輸入命令 jps ,發現只有 TaskTracker 而沒有DataNode。隨後看日誌
上網查詢解決方法,最後終於解決了,解決方法如下:
1. 先執行stop-all.sh暫停所有服務
2. 將所有Salve節點上的tmp(即 hdfs-site.xml 中指定的 dfs.data.dir 資料夾,DataNode存放資料塊的位置)、 logs 資料夾刪除 , 然後重新建立tmp , logs 資料夾
3. 將所有Salve節點上的/usr/hadoop/conf下的core-site.xml刪除,將master節點的core-site.xml檔案拷貝過來,到各個Salve節點
- scp /usr/hadoop/conf/core-site.xml [email protected]:/usr/hadoop/conf/
4. 重新格式化: hadoop namenode -format
5. 啟動:start-all.sh
注:這是我碰到的情況,不見得是你遇到的問題,基本上從以下幾個方面解決問題:
1. 檢查各個xml檔案是否配置正確
2. java環境變數配置是否正確
3. ssh是否無密碼互通
4, Hadoop離開安全模式,hadoop dfsadmin -safemode leave。
也可以參考這個:偽分散式下datanode無法啟動問題
例子如下:
1. 環境描述:
虛擬機器7.1.4,Ubuntu 10.10,偽分散式安裝Hadoop。
2. 問題描述:
多次格式化檔案系統時:
- $ bin/hadoop namenode -format
3. 問題產生原因:
執行檔案系統格式化時,會在namenode資料資料夾(即配置檔案中dfs.name.dir在本地系統的路徑)中儲存一個current/VERSION檔案,記錄namespaceID,標識了所格式化的namenode的版本。如果我們頻繁的格式化namenode,那麼datanode中儲存(即配置檔案中dfs.data.dir在本地系統的路徑)的current/VERSION檔案只是你第一次格式化時儲存的namenode的ID,因此就會造成datanode與namenode之間的id不一致。
4. datanode啟動日誌:
/home/xsj/hadoop/hadoop-0.20.2/logs/hadoop-xsj-datanode-xsj-virtual-machine.log.XXXX-XX-XX
檢視日誌發現:
************************************************************/
2012-05-28 17:40:59,973 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /home/xsj/hadoop/hadoop-0.20.2/hdfs/data: namenode namespaceID = 1525353449; datanode namespaceID = 1686950792
5. 解決方案:
把配置檔案中dfs.data.dir在本地系統的路徑下的current/VERSION檔案中的namespaceID改為與dfs.name.dir在本地系統的路徑下的current/VERSION檔案中的namespaceID一樣,例如:
dfs.data.dir為/home/xsj/hadoop/hadoop-0.20.2/hdfs/data
dfs.name.dir為/home/xsj/hadoop/hadoop-0.20.2/hdfs/name
開啟/home/xsj/hadoop/hadoop-0.20.2/hdfs/name/current/VERSION檔案:
-
#Wed May 30 09:51:09 CST 2012
-
namespaceID=1525353449
-
cTime=0
-
storageType=NAME_NODE
- layoutVersion=-18
開啟/home/xsj/hadoop/hadoop-0.20.2/hdfs/data/current/VERSION檔案:
-
#Thu May 24 17:23:11 CST 2012
-
namespaceID=1686950792
-
storageID=DS-1689019725-127.0.1.1-50010-1337851391704
-
cTime=0
-
storageType=DATA_NODE
- layoutVersion=-18
修改為:
-
#Thu May 24 17:23:11 CST 2012
-
namespaceID=1525353449
-
storageID=DS-1689019725-127.0.1.1-50010-1337851391704
-
cTime=0
-
storageType=DATA_NODE
- layoutVersion=-18
6. 重啟後執行jps命令:
問題導讀:
1、Hadoop出現問題時,該如何入手檢視問題?
2、datanode無法啟動,我們該怎麼解決?
3、如何動態加入DataNode或TaskTracker?
一、問題描述
當我多次格式化檔案系統時,如
- [email protected]:/usr/local/hadoop-1.0.2# bin/hadoop namenode -format
會出現datanode無法啟動,檢視日誌,發現錯誤為:
- 2012-04-20 20:39:46,501 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /home/gqy/hadoop/data: namenode namespaceID = 155319143; datanode namespaceID = 1036135033
二、問題產生原因
當我們執行檔案系統格式化時,會在namenode資料資料夾(即配置檔案中dfs.name.dir在本地系統的路徑)中儲存一個current/VERSION檔案,記錄namespaceID,標識了所格式化的 namenode的版本。如果我們頻繁的格式化namenode,那麼datanode中儲存(即配置檔案中dfs.data.dir在本地系統的路徑)的current/VERSION檔案只是你第一次格式化時儲存的namenode的ID,因此就會造成datanode與namenode之間的id不一致。
三、解決辦法
把配置檔案中dfs.data.dir在本地系統的路徑下的current/VERSION中的namespaceID改為與namenode一樣。
如果大家在安裝的時候遇到問題,或者按步驟安裝完後卻不能執行Hadoop,那麼建議仔細檢視日誌資訊,Hadoop記錄了詳盡的日誌資訊,日誌檔案儲存在logs資料夾內。
無論是啟動,還是以後會經常用到的MapReduce中的每一個job,以及HDFS等相關資訊,Hadoop均存有日誌檔案以供分析。
例如:
NameNode和DataNode的namespaceID不一致,這個錯誤是很多人在安裝時會遇到的,日誌資訊為:
-
java.io.IOException: Incompatible namespaceIDs in /root/tmp/dfs/data:
- NameNode namespaceID = 1307672299; DataNode namespaceID = 389959598
若HDFS一直沒有啟動,讀者可以查詢日誌,並通過日誌進行分析,以上提示資訊顯示了NameNode和DataNode的namespaceID不一致。
這個問題一般是由於兩次或兩次以上的格式化NameNode造成的,有兩種方法可以解決,第一種方法是刪除DataNode的所有資料(及將叢集中每個datanode的/hdfs/data/current中的VERSION刪掉,然後執行hadoop namenode -format重啟叢集,錯誤消失。<推薦>);第二種方法是修改每個DataNode的namespaceID(位於/hdfs/data/current/VERSION檔案中)<優先>或修改NameNode的namespaceID(位於/hdfs/name/current/VERSION檔案中),使其一致。
下面這兩種方法在實際應用中也可能會用到。
1)重啟壞掉的DataNode或JobTracker。當Hadoop叢集的某單個節點出現問題時,一般不必重啟整個系統,只須重啟這個節點,它會自動連入整個叢集。
在壞死的節點上輸入如下命令即可:
-
bin/Hadoop-daemon.sh start DataNode
- bin/Hadoop-daemon.sh start jobtracker
2) 動態加入DataNode或TaskTracker。這個命令允許使用者動態將某個節點加入叢集中。
-
bin/Hadoop-daemon.sh --config ./conf start DataNode
-
bin/Hadoop-daemon.sh --config ./conf start tasktracker
原文來自:
http://www.aboutyun.com/thread-7930-1-1.html
http://www.aboutyun.com/thread-7931-1-1.html
偽分散式下datanode無法啟動問題
原文來自:http://blog.sina.com.cn/s/blog_76fbd24d01017qmc.html
個人總結:使用偽分散式的方法沒有作用,最後採用分散式下DataNode不能啟動的解決方法,刪除tmp和logs
檔案,重新進行分散式環境配置,成功。
相關推薦
Hadoop錯誤1_Hadoop分散式及偽分散式下DataNode不能啟動的問題
問題導讀:1、hadoop 完全分散式 和偽分散式下 datanode無法啟動的原因?2、怎麼解決?問題描述:在叢集模式下更改節點後,啟動叢集發現 datanode一直啟動不起來。我叢集配置:有5個節點,分別為master slave1-5 。在master以hadoop使
java大資料最全課程學習筆記(1)--Hadoop簡介和安裝及偽分散式
> 目前[CSDN](https://blog.csdn.net/weixin_42208775),[部落格園](https://home.cnblogs.com/u/gitBook/),[簡書](https://www.jianshu.com/u/da41700fde04)同步發表中,更多精彩歡迎訪問
大資料技術學習筆記之Hadoop框架基礎1-Hadoop介紹及偽分散式部署
一、學習建議 -》學習思想 -》設計思想:分散式 -》資料採集
5.大資料學習之旅——hadoop-簡介及偽分散式安裝
Hadoop簡介 是Apache的頂級專案,是一個可靠的、可擴充套件的、支援分散式計算的開源 專案。 起源 創始人:Doug Cutting 和Mike 2004 Doug和Mike建立了Nutch - 利用通用爬蟲爬取了網際網路上的所有數 據,獲取了10億個網頁資料 - 1
Hadoop安裝教程_單機/偽分散式配置_CentOS6.4/Hadoop2.6.0
2015-12-17 (updated: 2017-03-02) 本教程適合於在 CentOS 6.x 系統中安裝原生 Hadoop 2,適用於Hadoop 2.7.1, Hadoop 2.6.0 等版本,主要參考了官方安裝教程,步驟詳細,輔以適當說明,相信按照步驟來,都
hadoop叢集環境搭建之偽分散式叢集環境搭建
搭建叢集的模式有三種 1.偽分散式:在一臺伺服器上,啟動多個執行緒分別代表多個角色(因為角色在叢集中使用程序表現的) 2.完全分散式:在多臺伺服器上,每臺伺服器啟動不同角色的程序,多臺伺服器構成叢集 node01:NameNode node02:
HBase安裝及偽分散式配置教程
HBase安裝是在我的另一篇部落格hadoop在centos系統未分散式安裝的基礎上進行的,HBase下載地址:HBase,不建議選擇最新版本的,容易出現相容性問題。 HBase安裝步驟 解壓到/usr/local 路徑下 sudo tar -zxf ~
hadoop HDFS Pseudo-Distributed Mode 偽分散式部署
一、 架構簡介: 本文件介紹如何設定和配置單節點Hadoop安裝,以便您可以使用Hadoop MapReduce和Hadoop分散式檔案系統(HDFS)快速執行簡單操作。 使用hadoop版本:Apache Hadoop 2.6.5
Hadoop安裝教程_單機/偽分散式配置_Hadoop2.6.4/Ubuntu16.04
1. 簡介 本教程適合於原生 Hadoop 2,包括 Hadoop 2.6.4, Hadoop 2.7.1 等版本,看了很多資料,自己搭建了好幾次,特做個總結,按照步驟來都能成功。 2. 環境 本教程使用 Ubuntu 16.04 64位 作為系統環境(U
Hadoop安裝教程_單機/偽分散式配置_騰訊雲/Ubuntu Server 16.04.1 LTS 64位/Hadoop2.9.1
環境 騰訊雲伺服器 系統:Ubuntu Server 16.04.1 LTS 64位 Hadoop版本:hadoop-2.9.1 提示:雲伺服器下的Ubuntu圖形化介面親測很卡,慎用!所以本教程全程shell配置。 裝好了 Ubuntu 系統之後,在安裝 Ha
Hadoop安裝教程_單機/偽分散式配置_hadoop-2.7.5/Ubuntu14.04
本篇部落格為學習總結部落格,學習字源來自廈門大學資料庫實驗室,連結為:http://dblab.xmu.edu.cn/blog/install-hadoop/ 十分感謝!!!一、 建立新使用者 首先按 ctrl+alt+t 開啟終端視窗,輸入如下命令建立新
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安裝教程_單機/偽分散式配置_Hadoop2.7.3/Ubuntu16.04
當開始著手實踐 Hadoop 時,安裝 Hadoop 往往會成為新手的一道門檻。儘管安裝其實很簡單,書上有寫到,官方網站也有 Hadoop 安裝配置教程,但由於對 Linux 環境不熟悉,書上跟官網上簡略的安裝步驟新手往往 Hold 不住。加上網上不少教程也甚是坑,導
hadoop偽分散式下 無法啟動datanode的原因及could only be replicated to > 0 nodes, instead of 1的錯誤
目前發現一個原因是 因為datanode無法啟動從而導致在hadoop上 put資料 出現 could only be replicated to > 0 nodes, instead of 1的錯誤。 輸入jps發現唯獨只有datanode程序沒有起來。所以我們要想
linux下安裝hadoop偽分散式叢集
1. 在虛擬機器上安裝了centos7, 下載hadoop。http://hadoop.apache.org/releases.html 這裡選擇2.7版本而不是3.0版本 不選3.0版本的理由,檢視版本更新日誌
windows下搭建Flume client + Ubuntu18.04 Hadoop偽分散式
經過兩天的吐血折騰終於在hadoop的介面上看見我同步的日誌檔案了,記錄一下。先來張定妝照: dashboard裡檢視: ubuntu下檢視: 從Windows裡上傳的日誌檔案: ==================================從0開始折騰====
windows10下 eclipse連線虛擬機器中的Hadoop偽分散式叢集
在windows用eclipse連線hadoop之後,可以便於進行mapreduce開發,非常方便,如果在虛擬機器裡面用eclipse的話 ,emmmmmm,你會卡到懷疑人生。 首先需要去下載eclipse,這個直接官網就ok link
Hadoop的偽分散式的安裝及部署
文章目錄 需要的軟體及原始碼包 安裝JDK Hadoop的部署安裝 Hadoop的配置 Hadoop的使用 做Hadoop的偽分散式我們分為一下幾個步驟 需要的軟體及原始碼包 FileZil
Centos7下配置Hadoop偽分散式環境
Centos 版本:7 Hadoop版本:2.7.4 Java版本:1.8 一、安裝JDK 官網下載jdk 1.8 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.
Spark本地安裝及Linux下偽分散式搭建
title: Spark本地安裝及Linux下偽分散式搭建 date: 2018-12-01 12:34:35 tags: Spark categories: 大資料 toc: true 個人github部落格:Josonlee’s Blog 文章目錄