windows 搭建和配置 hadoop + 踩過的坑


一、配置步驟
  1. hadoop官網 下載 tar.gz 鏡像
  2. 下載安裝winRAR , 管理員權限打開CMD, 切換到hadoop目錄下, 輸入start winrar x -y hadoop-3.1.2.tar.gz  執行解壓(不下載安裝winRAR, 用7zip解壓會報錯)
 
  1. 配置hadoop環境
  •    JAVA 配置:
            新建變量名  JAVA_HOME, 路徑 :java路徑, 比如 E:\Java\jdk1.8.0_191
                    path中,最前面加上%JAVA_HOME%\bin
  •      Hadoop 配置:
                    新變量:  HADOOP_HOME, hadoop的路徑, 如 E:\hadoop\hadoop-3.1.2
                    path中,添加%HADOOP_HOME%\bin
 
  1. 設置hadoop中的jdk路徑
  •             notepad ++ 編輯 hadoop\hadoop-3.1.2\etc\hadoop\ hadoop-env.cmd, 找到       set JAVA_HOME, 設置為:
                  set JAVA_HOME=%JAVA_HOME%  或者  set JAVA_HOME="jdk的路徑”(到jdk1.x.x_xxx)
            注意: 如果你的JAVA在C盤的 Program Files中,那么路徑改為  D:\Softwares\jdk1.8,如果是 Program Files(x86),還要另一種路徑,這我忘了。。。。(我用的前者%JAVA_HOME%)
        注: 設置好后, cmd內輸入 hadoop version, 出現下圖說明環境配置好了
  1. hadoop\hadoop-3.1.2 目錄下創建:
             tmp文件夾、datanode文件夾和namenode文件夾
 
  1. hadoop 文件配置(文件都在“hadoop-3.1.2\etc\hadoop\”目錄下)
  • core-site.xml 
        hadoop.tmp.dir 和其路徑是必須要加的(之前沒加出錯了)
    <property>
        <name> hadoop.tmp.dir</name>
        <value> file:E:/hadoop/hadoop-3.1.2/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
 
 
    <property>       
    <name>fs.defaultFS</name>       
    <value>hdfs://localhost:9000</value>   
    </property>
  • mapred-site.xml
    <property>       
    <name>mapreduce.framework.name</name>       
    <value>yarn</value>   
    </property>
 
 
  • hdfs-site.xml
    dfs.namenode.name.dir 下配置 剛才創建的namenode文件夾路徑
    dfs.datanode.data.dir 下配置 datanode文件夾路徑
<configuration>
    <property>       
        <name>dfs.replication</name>       
        <value>1</value>   
    </property>   
    <property>       
        <name>dfs.namenode.name.dir</name>       
        <value> /E:/hadoop/hadoop-3.1.2/namenode</value>   
    </property>   
    <property>       
        <name>dfs.datanode.data.dir</name>     
        <value> /E:/hadoop/hadoop-3.1.2/datanode</value>   
    </property>
</configuration>
 
  • yarn-site.xml
    <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.hadoop.mapred.ShuffleHandler</value>   
    </property>
 
  1. 啟動hadoop服務
  •  初始化 hdfs :  hdfs namenode -format
  •  啟動hadoop服務(同時啟動了dfs,yarn):
             切換路徑到  sbin目錄下  “hadoop\hadoop-3.1.2\sbin”, 輸入  start-all.cmd 啟動
  • 查看啟動情況: 輸入jps
        如果結果如下圖,就是啟動成功了, 說明明NodeManager和NameNode都沒出錯
        
 
二、踩到的坑
    1、沒有winutil.exe 可供加載
               網上找一個winutils.exe 和 hadoop.dll防御  bin目錄下(hadoop.dll文件,我用的hadoop3.1.2,找了一個hadoop3.0.0的,發現最后還是用不了,不得已有下載了hadoop里一個版本,且重新下載了對應版本的winutils.exe 和 hadoop.dll文件
 
    2、namenode啟動失敗
               如果上述2個錯誤出現的話 start-all.cmd命令會在nodename下創建文件,需要在nodename目錄下刪除所用命令,再執行start-all.cmd 即可修復
 
      3 、沒有tmp文件夾來使用
             在core-site.xml中配置 hadoop.tmp.dir和其路徑(上面都有)
 
         4、將java從C盤移動到D盤, 修改好java環境變量后,  java -version找不到java版本
             將 path中的 JAVA_HOME優先級上移解決
 
   5、NodeManage啟動失敗
     查看錯誤是 \tmp目錄下沒有 nm-local-dir文件夾, 創建一個新的就好了


免責聲明!

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



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