Hadoop的下载
Hadoop下载链接
http://archive.apache.org/dist/hadoop/core/
下载完成后解压,此处我解压到桌面了
C:\Users\Administrator\Desktop\hadoop-3.2.1
注:如果后续要安装Spark,那么最好安装和Spark版本对应的Hadoop版本
查看hadoop/spark对应版本:http://spark.apache.org/downloads.html
下载winutil
- winutil下载链接 https://github.com/cdarlint/winutils
- 下载完成后把与自己下载的Hadoop版本一致的bin目录复制到Hadoop的根路径下,与当前Hadoop中的bin目录合并。
Hadoop的配置
配置环境变量
- 添加系统变量
HADOOP_HOME
,变量值为Hadoop解压路径 - 添加环境变量
Path
,变量值为%HADOOP_HOME%\bin - 打开cmd,输入
hadoop
,不报错则配置成0.
复制文件
- 将
\bin\hadoop.dll
复制到\sbin
和C:\Windows\System32
路径下。
修改Hadoop配置文件
- 创建以下目录(以解压到我的桌面为例)
C:\Users\Administrator\Desktop\hadoop-3.2.1\data
C:\Users\Administrator\Desktop\hadoop-3.2.1\data\dfs
C:\Users\Administrator\Desktop\hadoop-3.2.1\data\dfs\datanode
C:\Users\Administrator\Desktop\hadoop-3.2.1\data\dfs\namenode
- 修改
\etc\hadoop\core-site.xml
文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
- 修改
\etc\hadoop\hdfs-site.xml
文件
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>localhost:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/C:/Users/Administrator/Desktop/hadoop-3.2.1/data/dfs/namenode</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/C:/Users/Administrator/Desktop/hadoop-3.2.1/data/dfs/datanode</value>
</property>
</configuration>
注意将上方路径改为自己的路径。
- 修改
\etc\hadoop\mapred-site.xml
文件
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://localhost:9001</value>
</property>
</configuration>
- 修改
\etc\hadoop\yarn-site.xml
文件
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shutffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shutffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
- 修改
\etc\hadoop\hadoop-env.cmd
文件,添加下方代码
@rem The java implementation to use. Required.
set JAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_261
格式化HDFS
- 打开cmd窗口,输入
hdfs namenode -format
- 如果出现错误,请查看注意事项。
开启四个进程
- 以==管理员身份==打开cmd窗口,切换到
\sbin
路径下,输入start-all.cmd
。四个命令窗口都没有出现shutdown
则启动成功。
测试Hadoop DFS
- 在浏览器中输入
http://localhost:50070
查看Hadoop状态 - 在浏览器中输入
http://localhost:8088
查看集群状态
注意事项
在使用Hadoop3.2.1版本时,使用hdfs namenode -format
命令会出现如下错误:
2020-01-18 13:36:03,021 ERROR namenode.NameNode: Failed to start namenode.
java.lang.UnsupportedOperationException
at java.nio.file.Files.setPosixFilePermissions(Files.java:2044)
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:452)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:591)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:613)
at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:188)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1206)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1649)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1759)
2020-01-18 13:36:03,025 INFO util.ExitUtil: Exiting with status 1: java.lang.UnsupportedOperationException
这是Hadoop3.2.1的bug,出现该错误可使用下方链接中的方法进行修复,或者更换更高的版本。
Fix for Hadoop 3.2.1 namenode format issue on Windows 10
I've uploaded the updated JAR file into the following location. Please download it from the following link:
https://github.com/FahaoTang/big-data/blob/master/hadoop-hdfs-3.2.1.jar
And then rename the file name hadoop-hdfs-3.2.1.jar to hadoop-hdfs-3.2.1.bk in folder %HADOOP_HOME%\share\hadoop\hdfs.
Copy the downloaded hadoop-hdfs-3.2.1.jar to folder %HADOOP_HOME%\share\hadoop\hdfs.
MapReduce的使用
见 hadoop中使用MapReduce编程实例
MapReduce适合单个较大规模运算,不适合多个较小规模运算。
MapReduce是将单个大规模运算分解成多个小规模运算进行并行运算,以此来提高运算速度。并不能将多个小规模运算进行并行运算。
参考博客 https://blog.csdn.net/qinlan1994/article/details/90413243