搭建 Hadoop 完全分布式集群实验报告
一、实验目的
本实验旨在搭建一个 Hadoop 完全分布式集群,以深入了解 Hadoop 生态系统的核心组件和工作原理,通过实际操作,我们将掌握 Hadoop 集群的配置、部署和管理,以及如何在集群上运行 MapReduce 作业。
二、实验环境
1、操作系统:CentOS 7.6
2、JDK 版本:1.8.0_252
3、Hadoop 版本:3.2.0
4、网络环境:内部网络,IP 地址段为 192.168.100.0/24
三、实验步骤
1、安装 JDK
- 下载 JDK 安装包,并解压到指定目录。
- 配置环境变量,将 JDK 安装目录添加到系统环境变量中。
- 验证 JDK 是否安装成功,在终端中输入java -version
命令,查看 JDK 版本信息。
2、安装 SSH 服务
- 安装 SSH 服务,在终端中输入yum install -y openssh-server
命令。
- 启动 SSH 服务,在终端中输入systemctl start sshd
命令。
- 配置 SSH 免密登录,在主节点上生成 SSH 密钥对,并将公钥复制到其他节点上。
3、下载 Hadoop 安装包
- 从 Hadoop 官方网站下载 Hadoop 安装包,并解压到指定目录。
4、配置 Hadoop 环境变量
- 配置 Hadoop 环境变量,将 Hadoop 安装目录添加到系统环境变量中。
- 配置 Hadoop 环境变量,将 Hadoop 依赖的库文件路径添加到系统环境变量中。
5、配置 Hadoop 核心文件
- 配置 Hadoop 核心文件,包括core-site.xml
、hdfs-site.xml
、yarn-site.xml
、mapred-site.xml
等。
- 在core-site.xml
文件中,配置 Hadoop 集群的名称、临时目录、工作目录等。
- 在hdfs-site.xml
文件中,配置 Hadoop 分布式文件系统的名称节点、数据节点、副本数量等。
- 在yarn-site.xml
文件中,配置 Hadoop 资源管理框架的资源管理器、节点管理器、队列等。
- 在mapred-site.xml
文件中,配置 Hadoop 计算框架的作业历史服务器、任务跟踪器等。
6、格式化 Hadoop 分布式文件系统
- 在主节点上,执行hdfs namenode -format
命令,格式化 Hadoop 分布式文件系统。
7、启动 Hadoop 服务
- 在主节点上,执行start-dfs.sh
命令,启动 Hadoop 分布式文件系统。
- 在主节点上,执行start-yarn.sh
命令,启动 Hadoop 资源管理框架。
8、验证 Hadoop 服务是否启动成功
- 在主节点上,执行jps
命令,查看 Hadoop 服务的进程是否正常运行。
- 在浏览器中,输入http://master:50070
地址,查看 Hadoop 分布式文件系统的管理界面。
- 在浏览器中,输入http://master:8088
地址,查看 Hadoop 资源管理框架的管理界面。
9、编写 MapReduce 程序
- 编写 MapReduce 程序,实现对文本文件的单词计数。
- 在 IntelliJ IDEA 中,创建一个 Maven 项目,并将 Hadoop 依赖添加到项目中。
- 在项目中,创建一个WordCountMapper
类,实现 Map 函数。
- 在项目中,创建一个WordCountReducer
类,实现 Reduce 函数。
- 在项目中,创建一个WordCountDriver
类,实现主函数。
10、打包 MapReduce 程序
- 在项目中,执行mvn clean package
命令,打包 MapReduce 程序。
11、上传 MapReduce 程序到 Hadoop 分布式文件系统
- 在主节点上,执行hdfs dfs -put /home/hadoop/wordcount-1.0-SNAPSHOT.jar /user/hadoop/
命令,将 MapReduce 程序上传到 Hadoop 分布式文件系统的/user/hadoop/
目录下。
12、运行 MapReduce 程序
- 在主节点上,执行yarn jar /user/hadoop/wordcount-1.0-SNAPSHOT.jar com.example.hadoop.WordCountDriver /user/hadoop/input /user/hadoop/output
命令,运行 MapReduce 程序。
13、验证 MapReduce 程序是否运行成功
- 在主节点上,执行hdfs dfs -cat /user/hadoop/output/part-r-00000
命令,查看 MapReduce 程序的输出结果。
四、实验总结
通过本次实验,我们成功搭建了一个 Hadoop 完全分布式集群,并在集群上运行了一个简单的 MapReduce 程序,通过实验,我们深入了解了 Hadoop 生态系统的核心组件和工作原理,掌握了 Hadoop 集群的配置、部署和管理,以及如何在集群上运行 MapReduce 作业。
在实验过程中,我们遇到了一些问题,如 SSH 免密登录失败、Hadoop 服务启动失败等,通过查阅相关资料和调试,我们最终解决了这些问题,通过解决问题的过程,我们提高了自己的问题解决能力和调试能力。
本次实验是一次非常有意义的实践活动,通过实验,我们不仅掌握了 Hadoop 技术的核心知识和技能,还提高了自己的实践能力和问题解决能力。
评论列表