windows下安裝和配置hadoop


1.安裝java

hadoop基於java開發,安裝hadoop前需要安裝java,並在環境變量中加入JAVA_HOME,hadoop通過JAVA_HOME的地址找到java;

 

 

2.安裝hadoop

下載hadoop,下載地址:

 
建議不要下載最高版本,而是下載穩定版本,我下載的是3.2.2版本;將壓縮包解壓到安裝目錄,注意安裝目錄的路徑中不要有空格;
 
我將hadoop壓縮包解壓到D:\hadoop路徑下,解壓后hadoop的目錄是D:\hadoop\hadoop-3.2.2;
 
然后下載winutils,在github上可以找到:
 
找到winutils中對應hadoop版本的文件夾,我的安裝版本是3.2.2,將winutils下名為3.2.2文件夾中的文件,復制到hadoop安裝目錄下的bin文件夾中,替換所有同名的文件;
 
在環境變量中加入HADOOP_HOME,路徑為D:\hadoop\hadoop-3.2.2,並在path中加入%HADOOP_HOME%\bin和%HADOOP_HOME%\sbin;
 
跟安裝java檢查環境變量是否配置正確類似,可以在cmd中輸入hadoop version,檢查hadoop環境變量配置是否正確;
 
 
3.配置hadoop
hadoop的主要配置在安裝目錄中etc/hadoop目錄下;
 
(1)修改core-site.xml
其中第一個property,hadoop.tmp.dir配置的是保存數據的臨時路徑,在hadoop安裝路徑下新建data文件夾,value配置為/D:/hadoop/hadoop-3.2.2/data,注意路徑前加了一個'/';
fs.defaultFS配置的是hdfs的ip和端口號,因為安裝在本地,ip配置為localhost,端口配置為9000;
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/D:/hadoop/hadoop-3.2.2/data</value>
    </property>
    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://localhost:9000</value>
    </property>
</configuration>

 

(2)修改hadoop-env.cmd
其中JAVA_HOME默認配置為%JAVA_HOME%,可以按實際情況修改;
set JAVA_HOME=%JAVA_HOME%

 

(3)修改hdfs-site.xml
其中dfs.replication是數據庫的副本數,默認為3;
dfs.namenode.name.dir是DFS名稱節點在本地文件系統中存儲名稱表(fsimage)的位置;
dfs.datanode.data.dir是DFS數據節點在本地文件系統中的位置;
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/D:/hadoop/hadoop-3.2.2/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/D:/hadoop/hadoop-3.2.2/data/datanode</value>
    </property>
</configuration>

 

(3)修改mapred-site.xml
其中mapreduce.framework.name是指定執行mapreduce作業時使用的框架,可以配置local、classic、yarn,我這里配置的是yarn;
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
     <property>
            <name>mapreduce.framework.name</name>
             <value>yarn</value>
    </property>
</configuration>

 

(4)修改yarn-site.xml
其中yarn.nodemanager.aux-services用於指定在進行mapreduce作業時,yarn使用mapreduce_shuffle混洗技術;
yarn.nodemanager.aux-services.mapreduce.shuffle.class用於指定混洗技術對應的字節碼文件;
<?xml version="1.0"?>
<configuration>
     <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hahoop.mapred.ShuffleHandler</value>
    </property>
</configuration>

 

 

4.節點格式化
正常情況下,格式話結束會顯示'namenode has been successfully formated',如果格式話失敗,原因可能是環境變量配置問題、hadoop版本和winutils版本不一致、etc中配置錯誤;
hdfs namenode -format

 

 

5.啟動hadoop
以管理員身份打開cmd,使用win+r快捷鍵打開運行,輸入cmd,然后ctrl+shift+enter,選擇‘是’,打開cmd;
執行start-all.cmd,會新打開4個cmd,分別是namenode、resourcemanager、nodemanager、datanode的4個進程,如果這4個cmd啟動沒有報錯,則啟動成功;
 
 
6.訪問hadoop服務網頁
 
訪問集群節點:
http://localhost:8088/
 
訪問HDFS:
http://localhost:9870/
 
 
7.啟動hadoop遇到的報錯和解決方法
 
報錯1: 
java.lang.NoClassDefFoundError: org/apache/hadoop/yarn/server/timelineservice/collector/TimelineCollectorManager
 
解決方法:
將<hadoop安裝目錄>\share\hadoop\yarn\timelineservice\hadoop-yarn-server-timelineservice-3.1.4.jar復制到<hadoop安裝目錄>\share\hadoop\yarn\下一份
 
 
報錯2:
Permissions incorrectly set for dir ... should be rwxr-xr-x, actual value = rw-rw-rw-
 
解決方法:
執行節點格式化語句(hdfs namenode -format)后,會在C盤tmp下生成hadoop-yarn-...的文件夾,刪除這個文件夾后重新運行hadoop
 
 
報錯3:
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Failed to setup local dir ... /nm-local-dir, which was marked as good.
 
解決方法:
使用管理員權限運行cmd
 
 
報錯4:
util.SysInfoWindows: ExitCodeException exitCode=-1073741515
 
解決方法:
運行hadoop安裝目錄bin下的winutils.exe,查看報錯,根據報錯內容解決具體問題
 
 
參考:
-1.WIN10安裝配置Hadoop   https://zhuanlan.zhihu.com/p/111844817
-2.Hadoop集群的四個配置文件的常用屬性解析   https://zhuanlan.zhihu.com/p/114278318
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM