Windows下hadoop環境搭建之NameNode啟動報錯

beiqiaosu發表於2023-05-16

前言:

        因為平時工作和日常接觸到的大都是的中型專案,所以少有個性化推薦等涉及大資料的功能。但是後期應該也會在自己專案中新增資訊推薦模組,所以就開始關注spark,hadoop,Thrift等工具,以下就以hadoop先開始,包括環境搭建和配置過程中踩坑過程。

        關於hadoop的環境搭建,網上也有各種各樣的教程。拿來直接按著他們的方法來,前期當前問題不大,但是呢,可能在安裝過程中由於每個工具的版本不一致。又或者配置中檔案路徑不一樣等等都很可能導致踩坑無數。不管是開發調測bug還是軟體環境搭建,我覺得最好的方法就是看日誌,看到error和warn再把錯誤資訊拿去查詢,比起xxxx啟動報錯,xxxx怎麼出錯了等等確實要快。

 

環境:

1. windows10

2.  jdk8

3.  hadoop2.7.7

 

簡易搭建:

1.  windows下jdk8的安裝,略過。

2. hadoop2.7.7下載完成。

Windows下hadoop環境搭建之NameNode啟動報錯

3.  hadooponwindows-master.zip檔案包下載。

      下載完成後,將hadooponwindows-master的bin和etc替換掉hadoop2.7.7的bin和etc檔案。

4.  hadoop環境變數配置,略過。

Windows下hadoop環境搭建之NameNode啟動報錯

5.  hadoop配置。

(1). hadoop-env.cmd配置:

找到hadoop的etc/hadoop下的hadoop-env.cmd並開啟,設定本地jdk的位置,路徑中不能有漢字特殊字元等,如下。

Windows下hadoop環境搭建之NameNode啟動報錯

(2). hdfs-site.xml配置:

找到hadoop的etc/hadoop下的hdfs-site.xml並開啟,在configuration新增如下引數。特別注意的是namenode和datanode兩個節點資料儲存位置,一定要新增file://協議。並且絕對路徑前一定要加“/”,因為這個會導致出現報錯的問題,後面再講。還有windows的路徑標識“/”,配置如下。

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
    
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. --><configuration>
 <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///E:/2setsoft/1dev/hadooponwindows/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///E:/2setsoft/1dev/hadooponwindows/data/datanode</value>
    </property></configuration>

(3).  core-site.xml配置:

找到hadoop的etc/hadoop下的core-site.xml並開啟,在configuration新增如下引數。特別注意的是hdfs的埠,因為作為開發本地出現9000埠應該很多,所以這裡就先強調記得這裡是配置埠的就行,以下是配置。

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
    
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. --><configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://127.0.0.1:9500</value>
    </property>
	
	<property>
	  <name>ipc.client.connect.max.retries</name>
	  <value>100</value>
	  <description>Indicates the number of retries a client will make to establish
		  a server connection.	  </description>
	</property>
 
	<property>
	  <name>ipc.client.connect.retry.interval</name>
	  <value>10000</value>
	  <description>Indicates the number of milliseconds a client will wait for
	  before retrying to establish a server connection.	  </description>
	</property>
 </configuration>

6. hadoop啟動。

(1).  namenode格式化:

開啟cmd皮膚,輸入hdfs namenode -format。出現需要確認建立namenode資料夾的基本上是沒問題。

Windows下hadoop環境搭建之NameNode啟動報錯

Windows下hadoop環境搭建之NameNode啟動報錯

(2).  hadoop啟動:

切換到hadoop的sbin目錄下執行start-all就會彈出四個視窗,datanode, namenode, resourcemanager, nodemanager。

Windows下hadoop環境搭建之NameNode啟動報錯

Windows下hadoop環境搭建之NameNode啟動報錯

Windows下hadoop環境搭建之NameNode啟動報錯

Windows下hadoop環境搭建之NameNode啟動報錯

(3). 檢查各節點啟動情況:

輸入jps -,出現以下內容表示全部啟動成功,以上四個少了一個都是有問題,就需要去對應視窗檢視報錯資訊查詢了。

Windows下hadoop環境搭建之NameNode啟動報錯

(4). 檢視web控制檯:

hadoop的web控制檯:127.0.0.1:50070

Windows下hadoop環境搭建之NameNode啟動報錯

yarn的web控制檯:127.0.0.1:8088

Windows下hadoop環境搭建之NameNode啟動報錯

 

namenode啟動報錯集錦

1. namenode.FSEditLog: No class configured for E, dfs.namenode.edits.journal-plugin.E is empty

        這個報錯的原因就是hdfs-site.xml配置namenode檔案位置開頭沒有加“/”,這個已經在上面配置的時候已經強調了。

2. common.Util: Path /E:/2setsoft/1dev/hadooponwindows/data/namenode should be specified as a URI in configuration files. P

        這個報錯的原因還是hdfs-site.xml配置namenode檔案位置時沒有新增“file://”,所以上面的配置時最正確的。

3. ERROR namenode.NameNode: Failed to start namenode. java.net.BindException: Problem binding to [ ] java.net.BindException: Address already in use: bind

        這個報錯的原因就是9000埠已經被繫結了,所以前面強調core-site.xml的埠時說的就是這裡的錯誤,解決方法就是修改一個其他的埠就可以了。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70029959/viewspace-2952513/,如需轉載,請註明出處,否則將追究法律責任。

相關文章