本文内容翻译自这篇文章https://www.solutionmandi.com/2018/11/hadoop-installation-on-windows-10.html
本教程的所有资源保存在百度网盘
提取码:7qej
目录
0 环境配置
安装Hadoop之前首先需要安装Java,该文章中安装的版本是1.8.0,我也安装的是这个版本的。
注意:java的环境变量不能有空格,我之前放在Program Files路径是不行的
如果在环境变量中改了Java路径,可能还会出现如下问题:
在这里能够得到完美解决方案,即将环境变量中%JAVA_HOME%\jre\bin
移动到最上面
1 下载并解压
首先下载百度网盘中的hadoop-2.8.0.tar.gz文件,并移动至D盘(当然,哪个盘都可以)
在当前目录新建Hadoop文件夹,并将tar.gz文件解压入其中。
注:这里不能直接解压,如果直接解压会报如下错误:
解决办法是首先以管理员身份打开Winrar或者别的解压工具,然后再选择解压即可
解压后的文件路径应该成为这样子:
如果你仔细看的话会发现我的截图里多了temp,userlog,data这几个文件夹,这是在第四步中新建的,可以暂时不用理会
2 配置环境变量
在Windows路径中添加HADOOP_HOME环境变量:
3 配置Path变量
将以下路径全部添加到Path中,建议从自己电脑手动复制:
- D:\Hadoop\hadoop-2.8.0\bin
- D:\Hadoop\hadoop-2.8.0\sbin
- D:\Hadoop\hadoop-2.8.0\share\hadoop\common*
- D:\Hadoop\hadoop-2.8.0\share\hadoop\hdfs
- D:\Hadoop\hadoop-2.8.0\share\hadoop\hdfs\lib*
- D:\Hadoop\hadoop-2.8.0\share\hadoop\hdfs*
- D:\Hadoop\hadoop-2.8.0\share\hadoop\yarn\lib*
- D:\Hadoop\hadoop-2.8.0\share\hadoop\yarn*
- D:\Hadoop\hadoop-2.8.0\share\hadoop\mapreduce\lib*
- D:\Hadoop\hadoop-2.8.0\share\hadoop\mapreduce*
- D:\Hadoop\hadoop-2.8.0\share\hadoop\common\lib*
- D:\Java\jdk1.8.0_171\bin
4 新建文件夹
在D:\hadoop-2.8.0路径下新建data文件夹
在D:\hadoop-2.8.0\data下新建datanode文件夹
在D:\hadoop-2.8.0\data下新建namenode文件夹
在D:\hadoop-2.8.0下新建temp文件夹,作为临时数据存储
在D:\hadoop-2.8.0下新建userlog文件夹,作为日志文件夹
5 配置XML文件
编辑D:/Hadoop/hadoop-2.8.0/etc/hadoop/core-site.xml文件,修改成为如下内容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
编辑D:/Hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml.template,首先修改文件名为mapred-site.xml,然后修改成为如下内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
编辑D:/Hadoop/hadoop-2.8.0/etc/hadoop/hdfs-site.xml文件,修改成为如下内容:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/D:/Hadoop/hadoop-2.8.0/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/D:/Hadoop/hadoop-2.8.0/data/datanode</value>
</property>
</configuration>
编辑D:/Hadoop/hadoop-2.8.0/etc/hadoop/yarn-site.xml文件,修改成为如下内容:
这里所有的文件路径,一定要在第一个位置加上反斜杠!!windows系统下必须得这样!!
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/D:/Hadoop/hadoop-2.8.0/userlog</value><final>true</final>
</property>
<property><name>yarn.nodemanager.local-dirs</name>
<value>/D:/Hadoop/hadoop-2.8.0/temp/nm-localdir</value>
</property>
</configuration>
最后用笔记本打开D:/Hadoop/hadoop-2.8.0/etc/hadoop/hadoop-env.cmd文件,查看是否有如下内容
6 管理Hadoop配置
说实话我也不知道这是啥,就按照博主的一步步来了
将D:\Hadoop\hadoop-2.8.0\bin文件夹删除,用百度网盘中下载的HadoopConfiguration-FIXbin.zip文件夹里的bin文件替代
打开命令行,输入hadoop version检查版本,如果你出现了这个问题,恭喜,那就是我在第0步所说的,Java的路径有空格:
如果你的环境没有问题了,那就应该是这样样子:
在D:\Hadoop\hadoop-2.8.0\bin路径下shlft+右键
打开PowerShell,输入hdfs namenode –format
比对输出信息,如果我们的几乎一样,那就完成了这一步了。
7 启动Hadoop
如果系统中安装有yarn,则无法启动,可以卸载,或者在环境变量中删掉他https://stackoverflow.com/questions/51574920/unable-to-run-yarn-during-hadoop-installation
在D:\Hadoop\hadoop-2.8.0\sbin目录下同样打开PowerShell,然后输入start-all.cmd
启动apache,会弹出来四个窗口
正常来说应该是这四个窗口:
- Hadoop Datanaode
- Hadoop Namenode
- Yarn Nodemanager
- Yarn Resourcemanager
可以看到少了一个Namenode,是因为出错了。
后来在老师的帮助下,在这个博客找到了解决方案,据说是重新格式化namenode的操作:
- 修改D:\Hadoop\hadoop-2.8.0\etc\hadoop\hdfs-site.xml文件,添加如下内容
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
- 在D:\Hadoop\hadoop-2.8.0目录,用PowerShell分别执行以下内容:
sbin/stop-dfs.sh
sbin/stop-yarn.sh
bin/hdfs namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh
可以通过打开链接验证服务启动:
- Namenode:http://localhost:50070
- Datanode :http://localhost:50075
- 所有:http://localhost:8088
不过不建议使用start-all.cmd
指令,可以分别执行以下命令:
start-dfs.cmd
start-yarn.cmd
8 停止Hadoop
停止全部:
Stop-all.cmd
分别停止:
Stop-dfs.cmd
Stop-yarn.cmd
9 动手实践(此时先要启动start-dfs.cmd)
使用命令将文件复制到HDFS
hadoop fs -mkdir /raj
hadoop fs -mkdir /raj/data
hadoop fs -ls /raj
hadoop fs -copyFromLocal 文件路径 /raj/data/
不知道为啥必须得用反斜杠路径…
如果顺利的话,就可以在这里http://localhost:50070/explorer.html#/raj/data看到它了
完结!撒花~