本文共 2800 字,大约阅读时间需要 9 分钟。
Hadoop依赖于Java运行环境,因此需要先安装Java运行环境,再安装部署Hadoop。
以2.9.2为例进行说明(因winutils最高支持到2.9.2)。
http://hadoop.apache.org/releases.html
下载二进制版本;解压到目标路径(如D:\hadoop);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
添加
fs.defaultFS hdfs://localhost:9000
hdfs-site.xml
replication设置为1,避免standalone模式时提示文件复制出错(默认情况下,文件需要存放三份)。
dfs.replication 1 dfs.namenode.name.dir file:///D:/hadoop/data/dfs/namenode dfs.datanode.data.dir file:///D:/hadoop/data/dfs/datanode
mapred-site.xml
将mapred-site.xml.template重命名为mapred-site.xml,然后添加(以使用yarn管理资源为例)
mapreduce.framework.name yarn
yarn-site.xml
添加
yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler
参数 | 说明 | 默认值 | 配置文件 | 示例 |
---|---|---|---|---|
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 /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 hadoop **
与start yarn **
前设定当前目录为HADOOP_BIN_PATH
(即添加cd /d %HADOOP_BIN_PATH%
)。停止出错
通过Stop-all停止Hadoop时,若提示找不到活动的任务,则说明TaskKill杀进程时未找到对应的运行程序(通过查找窗口标题):
TaskKill /FI "WINDOWTITLE eq **"
(把要查找的标题,修改为真实的命令行窗口标题即可)。转载地址:http://kgnlf.baihongyu.com/