一、配置步驟
- hadoop官網 下載 tar.gz 鏡像
- 下載安裝winRAR , 管理員權限打開CMD, 切換到hadoop目錄下, 輸入start winrar x -y hadoop-3.1.2.tar.gz 執行解壓(不下載安裝winRAR, 用7zip解壓會報錯)
- 配置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
- 設置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, 出現下圖說明環境配置好了

- hadoop\hadoop-3.1.2 目錄下創建:
tmp文件夾、datanode文件夾和namenode文件夾
- 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>
- 啟動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文件夾, 創建一個新的就好了