记录一下Hadoop在Windows 10上的部署过程和一些小问题。
环境版本
java:jdk1.8.0_111
Hadoop: hadoop-2.7.3
配置Hadoop前需要配置java的环境,网上教程很多,在此不再详述。
文件下载
1.下载Hadoop的部署包(非src源码包)并解压。
2.下载hadoop在windows上运行所需的bin包。2.7.3版本的hadoop可至如下链接下载。如果其他版本,可以尝试在github上搜索“hadoop win”看有没有大神分享。
https://github.com/rucyang/hadoop.dll-and-winutils.exe-for-hadoop2.7.3-on-windows_X64
3.将下完的压缩包解压,将bin中的文件复制到hadoop-2.7.3目录下的bin目录中。
4.添加环境变量HADOOP_HOME,对应路径为Hadoop的解压后的目录(比如D:\envpath\hadoop-2.7.3)。
5.在环境变量Path中添加%HADOOP_HOME%\bin和%HADOOP_HOME%\sbin。
配置文件的修改
配置引自https://blog.csdn.net/tornadojava/article/details/56013420。
etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
etc/hadoop/hdfs-site.xml
配置datanode和namenode的路径。
从https://stackoverflow.com/questions/34871814/failed-to-start-namenode-in-hadoop上看到,对windows来说,路径只能设置成以下两种格式:
/c:/path/to/dir
file:/c:/path/to/dir
因此,如果hadoop-2.7.3放在d盘的envpath下,可以进行如下配置。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/d:/envpath/hadoop-2.7.3/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/d:/envpath/hadoop-2.7.3/data/datanode</value>
</property>
</configuration>
如果该路径配置有误,在格式化namenode时不会报错,但是启动Hadoop时会报路径找不到或者路径不可达的异常。
etc\hadoop\yarn-site.xml
<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.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
etc/hadoop/hadoop-env.cmd
配置java环境,“=”后直接接java的目录即可。
set JAVA_HOME=D:\envpath\jdk1.8.0_111
如果是放在program files目录下,则将program files用PROGRA~1表示,比如如下:
set JAVA_HOME=D:\PROGRA~1\jdk1.8.0_111
hadoop启动
格式化NameNode
>hdfs namenode -format
如果日志输出最后的status结果为0,则表示格式化成功。
启动Hadoop
>d: //切换到d盘
>cd %HADOOP_HOME%\sbin //进入Hadoop的sbin目录
>start-all //启动hadoop
>jps //查看启动的进程,除了jps,将启动4个进程
18096 DataNode
15012 ResourceManager
15268 NodeManager
11944 Jps
15564 NameNode
至此,Hadoop部署完成。