Hadoop依赖于Java运行环境,因此需要先安装Java运行环境,再安装部署Hadoop。
安装
以2.9.2为例进行说明(因winutils最高支持到2.9.2)。
- 到Hadoop网站
http://hadoop.apache.org/releases.html
下载二进制版本;解压到目标路径(如D:\hadoop); - 到github网站
https://github.com/cdarlint/winutils
下载winutils(编译好的hadoop的windows版本二进制文件);复制到hadoop安装目录下的bin目录。
启动
文件复制好后,按照第二节的方式修改配置文件,然后格式化文件系统。在bin目录下执行:hdfs namenode -format
。
格式化完成后,到sbin目录下,启动hadoop:start-all.cmd
。
通过执行stop-all.cmd
停止Hadoop。
查看
在浏览器中访问http://localhost:50070
查看Hadoop状态。
访问http://localhost:8088
查看集群状态。
配置文件修改
配置文件在安装目录的etc目录下,修改以下文件后,格式化完文件系统即可启动Hadoop了。
core-site.xml
添加
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml
replication设置为1,避免standalone模式时提示文件复制出错(默认情况下,文件需要存放三份)。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///D:/hadoop/data/dfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///D:/hadoop/data/dfs/datanode</value>
</property>
</configuration>
mapred-site.xml
将mapred-site.xml.template重命名为mapred-site.xml,然后添加(以使用yarn管理资源为例)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
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>
常用端口说明
参数 | 说明 | 默认值 | 配置文件 | 示例 |
---|---|---|---|---|
fs.default.name namenode | namenode RPC交互端口 | 8020 | core-site.xml | hdfs://master:8020/ |
dfs.http.address | NameNode web管理端口 | 50070 | hdfs- site.xml | 0.0.0.0:50070 |
dfs.datanode.address | datanode 控制端口 | 50010 | hdfs- site.xml | 0.0.0.0:50010 |
dfs.datanode.ipc.address | datanode的RPC服务器地址和端口 | 50020 | hdfs- site.xml | 0.0.0.0:50020 |
dfs.datanode.http.address | datanode的HTTP服务器和端口 | 50075 | hdfs- site.xml | 0.0.0.0:50075 |
出错处理
JAVA_HOME带空格
Hadoop在处理带有空格的Java路径时,会存在问题。若Java安装在带空格的目录下,需修改libexec\hadoop-config.cmd
文件:
%JAVA_HOME%\bin\java.exe
加上双引号"%JAVA_HOME%\bin\java.exe"
set JAVA=%JAVA_HOME%\bin\java
加上双引号set JAVA="%JAVA_HOME%\bin\java"
- for循环中增加usebackq选项:
for /f "usebackq delims=" %%A in ('%JAVA% -Xmx32m %HADOOP_JAVA_PLATFORM_OPTS% -classpath "%CLASSPATH%" org.apache.hadoop.util.PlatformName') do set JAVA_PLATFORM=%%A
启动出错
通过start-all启动Hadoop时,若报找不到文件:
- 设置环境变量
HADOOP_BIN_PATH
为Hadoop的bin目录; - 修改start-dfs.cmd和start-yarn.cmd两个批处理文件,在
start hadoop **
与start yarn **
前设定当前目录为HADOOP_BIN_PATH
(即添加cd /d %HADOOP_BIN_PATH%
)。
停止出错
通过Stop-all停止Hadoop时,若提示找不到活动的任务,则说明TaskKill杀进程时未找到对应的运行程序(通过查找窗口标题):
- 修改stop-dfs.cmd和stop-yarn.cmd中的
TaskKill /FI "WINDOWTITLE eq **"
(把要查找的标题,修改为真实的命令行窗口标题即可)。