一、配置步骤
- 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的,可能这都能用吧,侥幸能用 )
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文件夹, 创建一个新的就好了